Twitter Model ICT [TradingFinder] MMXM ERL D + FVG + M15 MSS/SMT🔵 Introduction
The Twitter Model ICT is a trading approach based on ICT (Inner Circle Trader) models, focusing on price movement between external and internal liquidity in lower timeframes. This model integrates key concepts such as Market Structure Shift (MSS), Smart Money Technique (SMT) divergence, and CISD level break to identify precise entry points in the market.
The primary goal of this model is to determine key liquidity levels, such as the previous day’s high and low (PDH/PDL) and align them with the Fair Value Gap (FVG) in the 1-hour timeframe. The overall strategy involves framing trades around the 1H FVG and using the M15 Market Structure Shift (MSS) for entry confirmation.
The Twitter Model ICT is designed to utilize external liquidity levels, such as PDH/PDL, as key entry zones. The model identifies FVG in the 1-hour timeframe, which acts as a magnet for price movement. Additionally, traders confirm entries using M15 Market Structure Shift (MSS) and SMT divergence.
Bullish Twitter Model :
In a bullish setup, the price sweeps the previous day’s low (PDL), and after confirming reversal signals, buys are executed in internal liquidity zones. Conversely, in a bearish setup, the price sweeps the previous day’s high (PDH), and after confirming weakness signals, sells are executed.
Bearish Twitter Model :
In short setups, entries are only executed above the Midnight Open, while in long setups, entries are taken below the Midnight Open. Adhering to these principles allows traders to define precise entry and exit points and analyze price movement with greater accuracy based on liquidity and market structure.
🔵 How to Use
The Twitter Model ICT is a liquidity-based trading strategy that analyzes price movements relative to the previous day’s high and low (PDH/PDL) and Fair Value Gap (FVG). This model is applicable in both bullish and bearish directions and utilizes the 1-hour (1H) and 15-minute (M15) timeframes for entry confirmation.
The price first sweeps an external liquidity level (PDH or PDL) and then provides an entry opportunity based on Market Structure Shift (MSS) and SMT divergence. Additionally, the entry should be positioned relative to the Midnight Open, meaning long entries should occur below the Midnight Open and short entries above it.
🟣 Bullish Twitter Model
In a bullish setup, the price first sweeps the previous day’s low (PDL) and reaches an external liquidity level. Then, in the 1-hour timeframe (1H), a bullish Fair Value Gap (FVG) forms, which serves as the price target.
To confirm the entry, a Market Structure Shift (MSS) in the 15-minute timeframe (M15) should be observed, signaling a trend reversal to the upside. Additionally, SMT divergence with correlated assets can indicate weakness in selling pressure.
Under these conditions, a long position is taken below the Midnight Open, with a stop-loss placed at the lowest point of the recent bearish move. The price target for this trade is the FVG in the 1-hour timeframe.
🟣 Bearish Twitter Model
In a bearish setup, the price first sweeps the previous day’s high (PDH) and reaches an external liquidity level. Then, in the 1-hour timeframe (1H), a bearish Fair Value Gap (FVG) is identified, serving as the trade target.
To confirm entry, a Market Structure Shift (MSS) in the 15-minute timeframe (M15) should form, signaling a trend shift to the downside. If an SMT divergence is present, it can provide additional confirmation for the trade.
Once these conditions are met, a short position is taken above the Midnight Open, with a stop-loss placed at the highest level of the recent bullish move. The trade's price target is the FVG in the 1-hour timeframe.
🔵 Settings
Bar Back Check : Determining the return of candles to identify the CISD level.
CISD Level Validity : CISD level validity period based on the number of candles.
Daily Position : Determines whether only the first signal of the day is considered or if signals are evaluated throughout the entire day.
Session : Specifies in which trading sessions the indicator will be active.
Second Symbol : This setting allows you to select another asset for comparison with the primary asset. By default, "XAUUSD" (Gold) is set as the second symbol, but you can change it to any currency pair, stock, or cryptocurrency. For example, you can choose currency pairs like EUR/USD or GBP/USD to identify divergences between these two assets.
Divergence Fractal Periods : This parameter defines the number of past candles to consider when identifying divergences. The default value is 2, but you can change it to suit your preferences. This setting allows you to detect divergences more accurately by selecting a greater number of candles.
The indicator allows displaying sessions based on various time zones. The user can select one of the following options :
UTC (Coordinated Universal Time)
Local Time of the Session
User’s Local Time
Show Open Price : Displays the New York market opening price.
Show PDH / PDL : Displays the previous day’s high and low to identify potential entry points.
Show SMT Divergence : Displays lines and labels for bullish ("+SMT") and bearish ("-SMT") divergences.
🔵 Conclusion
The Twitter Model ICT is an effective approach for analyzing and executing trades in financial markets, utilizing a combination of liquidity principles, market structure, and SMT confirmations to identify optimal entry and exit points.
By analyzing the previous day’s high and low (PDH/PDL), Fair Value Gaps (FVG), and Market Structure Shift (MSS) in the 1H and M15 timeframes, traders can pinpoint liquidity-driven trade opportunities. Additionally, considering the Midnight Open level helps traders avoid random entries and ensures better trade placement.
By applying this model, traders can interpret market movements based on liquidity flow and structural changes, allowing them to fine-tune their trading decisions with higher precision. Ultimately, the Twitter Model ICT provides a structured and logical approach for traders who seek to trade based on liquidity behavior and trend shifts in the market.
חפש סקריפטים עבור "market structure"
Enhanced London Session SMC SetupEnhanced London Session SMC Setup Indicator
This Pine Script-based indicator is designed for traders focusing on the London trading session, leveraging smart money concepts (SMC) to identify potential trading opportunities in the GBP/USD currency pair. The script uses multiple techniques such as Order Block Detection, Imbalance (Fair Value Gap) Analysis, Change of Character (CHoCH) detection, and Fibonacci retracement levels to aid in market structure analysis, providing a well-rounded approach to trade setups.
Features:
London Session Highlight:
The indicator visually marks the London trading session (from 08:00 AM to 04:00 PM UTC) on the chart using a blue background, signaling when the high-volume, high-impulse moves tend to occur, helping traders focus their analysis on this key session.
Order Block Detection:
Identifies significant impulse moves that may form order blocks (supply and demand zones). Order blocks are areas where institutions have executed large orders, often leading to price reversals or continuation. The indicator plots the high and low of these order blocks, providing key levels to monitor for potential entries.
Imbalance (Fair Value Gap) Detection:
Detects and highlights price imbalances or fair value gaps (FVG) where the market has moved too quickly, creating a gap in price action. These areas are often revisited by price, offering potential trade opportunities. The upper and lower bounds of the imbalance are visually marked for easy reference.
Change of Character (CHoCH) Detection:
This feature identifies potential trend reversals by detecting significant changes in market character. When the price action shifts from bullish to bearish or vice versa, a CHoCH signal is triggered, and the corresponding level is marked on the chart. This can help traders catch trend reversals at key levels.
Fibonacci Retracement Levels:
The script calculates and plots the key Fibonacci retracement levels (0.618 and 0.786 by default) based on the highest and lowest points over a user-defined swing lookback period. These levels are commonly used by traders to identify potential pullback zones where price may reverse or find support/resistance.
Directional Bias Based on Market Structure:
The indicator provides a market structure analysis by comparing the current highs and lows to the previous periods' highs and lows. This helps in identifying whether the market is in a bullish or bearish state, providing a clear directional bias for trade setups.
Alerts:
The indicator comes with built-in alert conditions to notify the trader when an order block, imbalance, CHoCH, or other significant price action event is detected, ensuring timely action can be taken.
Ideal Usage:
Timeframe: Suitable for intraday trading, particularly focusing on the London session (08:00 AM to 04:00 PM UTC).
Currency Pair: Specifically designed for GBP/USD but can be adapted to other pairs with similar market behavior.
Trading Strategy: Best used in conjunction with a price action strategy, focusing on the key levels identified (order blocks, FVG, CHoCH) and using Fibonacci retracement levels for precision entries.
Target Audience: Ideal for traders who follow smart money concepts (SMC) and are looking for a structured approach to identify high-probability setups during the London session.
ICT Donchian Smart Money Structure (Expo)█ Concept Overview
The Inner Circle Trader (ICT) methodology is focused on understanding the actions and implications of the so-called "smart money" - large institutions and professional traders who often influence market movements. Key to this is the concept of market structure and how it can provide insights into potential price moves.
Over time, however, there has been a notable shift in how some traders interpret and apply this methodology. Initially, it was designed with a focus on the fractal nature of markets. Fractals are recurring patterns in price action that are self-similar across different time scales, providing a nuanced and dynamic understanding of market structure.
However, as the ICT methodology has grown in popularity, there has been a drift away from this fractal-based perspective. Instead, many traders have started to focus more on pivot points as their primary tool for understanding market structure.
Pivot points provide static levels of potential support and resistance. While they can be useful in some contexts, relying heavily on them could provide a skewed perspective of market structure. They offer a static, backward-looking view that may not accurately reflect real-time changes in market sentiment or the dynamic nature of markets.
This shift from a fractal-based perspective to a pivot point perspective has significant implications. It can lead traders to misinterpret market structure and potentially make incorrect trading decisions.
To highlight this issue, you've developed a Donchian Structure indicator that mirrors the use of pivot points. The Donchian Channels are formed by the highest high and the lowest low over a certain period, providing another representation of potential market extremes. The fact that the Donchian Structure indicator produces the same results as pivot points underscores the inherent limitations of relying too heavily on these tools.
While the Donchian Structure indicator or pivot points can be useful tools, they should not replace the original, fractal-based perspective of the ICT methodology. These tools can provide a broad overview of market structure but may not capture the intricate dynamics and real-time changes that a fractal-based approach can offer.
It's essential for traders to understand these differences and to apply these tools correctly within the broader context of the ICT methodology and the Smart Money Concept Structure. A well-rounded approach that incorporates fractals, along with other tools and forms of analysis, is likely to provide a more accurate and comprehensive understanding of market structure.
█ Smart Money Concept - Misunderstandings
The Smart Money Concept is a popular concept among traders, and it's based on the idea that the "smart money" - typically large institutional investors, market makers, and professional traders - have superior knowledge or information, and their actions can provide valuable insight for other traders.
One of the biggest misunderstandings with this concept is the belief that tracking smart money activity can guarantee profitable trading.
█ Here are a few common misconceptions:
Following Smart Money Equals Guaranteed Success: Many traders believe that if they can follow the smart money, they will be successful. However, tracking the activity of large institutional investors and other professionals isn't easy, as they use complex strategies, have access to information not available to the public, and often intentionally hide their moves to prevent others from detecting their strategies.
Instantaneous Reaction and Results: Another misconception is that market movements will reflect smart money actions immediately. However, large institutions often slowly accumulate or distribute positions over time to avoid moving the market drastically. As a result, their actions might not produce an immediate noticeable effect on the market.
Smart Money Always Wins: It's not accurate to assume that smart money always makes the right decisions. Even the most experienced institutional investors and professional traders make mistakes, misjudge market conditions, or are affected by unpredictable events.
Smart Money Activity is Transparent: Understanding what constitutes smart money activity can be quite challenging. There are many indicators and metrics that traders use to try and track smart money, such as the COT (Commitments of Traders) reports, Level II market data, block trades, etc. However, these can be difficult to interpret correctly and are often misleading.
Assuming Uniformity Among Smart Money: 'Smart Money' is not a monolithic entity. Different institutional investors and professional traders have different strategies, risk tolerances, and investment horizons. What might be a good trade for a long-term institutional investor might not be a good trade for a short-term professional trader, and vice versa.
█ Market Structure
The Smart Money Concept Structure deals with the interpretation of price action that forms the market structure, focusing on understanding key shifts or changes in the market that may indicate where 'smart money' (large institutional investors and professional traders) might be moving in the market.
█ Three common concepts in this regard are Change of Character (CHoCH), and Shift in Market Structure (SMS), Break of Structure (BMS/BoS).
Change of Character (CHoCH): This refers to a noticeable change in the behavior of price movement, which could suggest that a shift in the market might be about to occur. This might be signaled by a sudden increase in volatility, a break of a trendline, or a change in volume, among other things.
Shift in Market Structure (SMS): This is when the overall structure of the market changes, suggesting a potential new trend. It usually involves a sequence of lower highs and lower lows for a downtrend, or higher highs and higher lows for an uptrend.
Break of Structure (BMS/BoS): This is when a previously defined trend or pattern in the price structure is broken, which may suggest a trend continuation.
A key component of this approach is the use of fractals, which are repeating patterns in price action that can give insights into potential market reversals. They appear at all scales of a price chart, reflecting the self-similar nature of markets.
█ Market Structure - Misunderstandings
One of the biggest misunderstandings about the ICT approach is the over-reliance or incorrect application of pivot points. Pivot points are a popular tool among traders due to their simplicity and easy-to-understand nature. However, when it comes to the Smart Money Concept and trying to follow the steps of professional traders or large institutions, relying heavily on pivot points can create misconceptions and lead to confusion. Here's why:
Delayed and Static Information: Pivot points are inherently backward-looking because they're calculated based on the previous period's data. As such, they may not reflect real-time market dynamics or sudden changes in market sentiment. Furthermore, they present a static view of market structure, delineating pre-defined levels of support and resistance. This static nature can be misleading because markets are fundamentally dynamic and constantly changing due to countless variables.
Inadequate Representation of Market Complexity: Markets are influenced by a myriad of factors, including economic indicators, geopolitical events, institutional actions, and market sentiment, among others. Relying on pivot points alone for reading market structure oversimplifies this complexity and can lead to a myopic understanding of market dynamics.
False Signals and Misinterpretations: Pivot points can often give false signals, especially in volatile markets. Prices might react to these levels temporarily but then continue in the original direction, leading to potential misinterpretation of market structure and sentiment. Also, a trader might wrongly perceive a break of a pivot point as a significant market event, when in fact, it could be due to random price fluctuations or temporary volatility.
Over-simplification: Viewing market structure only through the lens of pivot points simplifies the market to static levels of support and resistance, which can lead to misinterpretation of market dynamics. For instance, a trader might view a break of a pivot point as a definite sign of a trend, when it could just be a temporary price spike.
Ignoring the Fractal Nature of Markets: In the context of the Smart Money Concept Structure, understanding the fractal nature of markets is crucial. Fractals are self-similar patterns that repeat at all scales and provide a more dynamic and nuanced understanding of market structure. They can help traders identify shifts in market sentiment or direction in real-time, providing more relevant and timely information compared to pivot points.
The key takeaway here is not that pivot points should be entirely avoided or that they're useless. They can provide valuable insights and serve as a useful tool in a trader's toolbox when used correctly. However, they should not be the sole or primary method for understanding the market structure, especially in the context of the Smart Money Concept Structure.
█ Fractals
Instead, traders should aim for a comprehensive understanding of markets that incorporates a range of tools and concepts, including but not limited to fractals, order flow, volume analysis, fundamental analysis, and, yes, even pivot points. Fractals offer a more dynamic and nuanced view of the market. They reflect the recursive nature of markets and can provide valuable insights into potential market reversals. Because they appear at all scales of a price chart, they can provide a more holistic and real-time understanding of market structure.
In contrast, the Smart Money Concept Structure, focusing on fractals and comprehensive market analysis, aims to capture a more holistic and real-time view of the market. Fractals, being self-similar patterns that repeat at different scales, offer a dynamic understanding of market structure. As a result, they can help to identify shifts in market sentiment or direction as they happen, providing a more detailed and timely perspective.
Furthermore, a comprehensive market analysis would consider a broader set of factors, including order flow, volume analysis, and fundamental analysis, which could provide additional insights into 'smart money' actions.
█ Donchian Structure
Donchian Channels are a type of indicator used in technical analysis to identify potential price breakouts and trends, and they may also serve as a tool for understanding market structure. The channels are formed by taking the highest high and the lowest low over a certain number of periods, creating an envelope of price action.
Donchian Channels (or pivot points) can be useful tools for providing a general view of market structure, and they may not capture the intricate dynamics associated with the Smart Money Concept Structure. A more nuanced approach, centered on real-time fractals and a comprehensive analysis of various market factors, offers a more accurate understanding of 'smart money' actions and market structure.
█ Here is why Donchian Structure may be misleading:
Lack of Nuance: Donchian Channels, like pivot points, provide a simplified view of market structure. They don't take into account the nuanced behaviors of price action or the complex dynamics between buyers and sellers that can be critical in the Smart Money Concept Structure.
Limited Insights into 'Smart Money' Actions: While Donchian Channels can highlight potential breakout points and trends, they don't necessarily provide insights into the actions of 'smart money'. These large institutional traders often use sophisticated strategies that can't be easily inferred from price action alone.
█ Indicator Overview
We have built this Donchian Structure indicator to show that it returns the same results as using pivot points. The Donchian Structure indicator can be a useful tool for market analysis. However, it should not be seen as a direct replacement or equivalent to the original Smart Money concept, nor should any indicator based on pivot points. The indicator highlights the importance of understanding what kind of trading tools we use and how they can affect our decisions.
The Donchian Structure Indicator displays CHoCH, SMS, BoS/BMS, as well as premium and discount areas. This indicator plots everything in real-time and allows for easy backtesting on any market and timeframe. A unique candle coloring has been added to make it more engaging and visually appealing when identifying new trading setups and strategies. This candle coloring is "leading," meaning it can signal a structural change before it actually happens, giving traders ample time to plan their next trade accordingly.
█ How to use
The indicator is great for traders who want to simplify their view on the market structure and easily backtest Smart Money Concept Strategies. The added candle coloring function serves as a heads-up for structure change or can be used as trend confirmation. This new candle coloring feature can generate many new Smart Money Concepts strategies.
█ Features
Market Structure
The market structure is based on the Donchian channel, to which we have added what we call 'Structure Response'. This addition makes the indicator more useful, especially in trending markets. The core concept involves traders buying at a discount and selling or shorting at a premium, depending on the order flow. Structure response enables traders to determine the order flow more clearly. Consequently, more trading opportunities will appear in trending markets.
Structure Candles
Structure Candles highlight the current order flow and are significantly more responsive to structural changes. They can provide traders with a heads-up before a break in structure occurs
-----------------
Disclaimer
The information contained in my Scripts/Indicators/Ideas/Algos/Systems does not constitute financial advice or a solicitation to buy or sell any securities of any type. I will not accept liability for any loss or damage, including without limitation any loss of profit, which may arise directly or indirectly from the use of or reliance on such information.
All investments involve risk, and the past performance of a security, industry, sector, market, financial product, trading strategy, backtest, or individual's trading does not guarantee future results or returns. Investors are fully responsible for any investment decisions they make. Such decisions should be based solely on an evaluation of their financial circumstances, investment objectives, risk tolerance, and liquidity needs.
My Scripts/Indicators/Ideas/Algos/Systems are only for educational purposes!
Advanced Multi-EMA System with Dashboard📋 Table of Contents-
Overview
Setup & Installation
Indicator Configuration
Trading Signals
Dashboard Interpretation
Trading Strategy
Risk Management
Advanced Features
🎯 Overview
This comprehensive trading system combines multiple EMA timeframes with advanced market analysis to provide complete market context. It's designed for both swing trading and day trading across all timeframes.
⚡ Setup & Installation
Step 1: Access Pine Script Editor
Open TradingView
Select your preferred chart
Click "Pine Editor" at the bottom of the screen
Remove any existing code
Paste the complete script I provided
Click "Add to Chart"
Step 2: Initial Configuration
pinescript
// Basic Setup:
EMA Type: EMA/TMA/RMA/SMA (default: EMA)
Show EMA 9: ON
Show EMA 21: ON
Show EMA 150: ON
Show EMA 200: ON
⚙️ Indicator Configuration
EMA Types Explained:
EMA (Exponential Moving Average): More weight to recent prices
SMA (Simple Moving Average): Equal weight to all prices
RMA (Relative Moving Average): Modified EMA calculation
TMA (Triangular Moving Average): Double-smoothed average
Recommended Settings:
pinescript
// Day Trading (1-15 min charts):
EMA 9: Fast momentum
EMA 21: Short-term trend
EMA 150: Medium-term trend
EMA 200: Long-term trend
// Swing Trading (1H-4H charts):
Use same lengths but adjust trailing stop parameters
📊 Dashboard Interpretation
Trend Analysis Section:
PRIMARY TREND: EMA 150 vs EMA 200 (Long-term)
SECONDARY TREND: EMA 21 vs EMA 150 (Medium-term)
HTF TREND: 1-hour timeframe context
Score Interpretation:
TREND STRENGTH: -1.0 to +1.0
+0.5 to +1.0: Strong Bullish
0 to +0.5: Mild Bullish
-0.5 to 0: Mild Bearish
-1.0 to -0.5: Strong Bearish
MOMENTUM SCORE: RSI-based
Above +0.2: Bullish momentum
Below -0.2: Bearish momentum
VOLATILITY SCORE: ATR-based
Above 0.5: High volatility (caution)
Below 0.5: Low volatility
Volume Analysis:
VOLUME STRENGTH: Current vs average volume
BUYER/SELLER BALANCE: Cumulative delta calculation
🎯 Trading Signals
Long Entry Conditions:
pinescript
1. EMA 150 crosses ABOVE EMA 200
2. Primary Trend shows BULLISH
3. Trend Strength > 0.3
4. Momentum Score > 0
Short Entry Conditions:
pinescript
1. EMA 150 crosses BELOW EMA 200
2. Primary Trend shows BEARISH
3. Trend Strength < -0.3
4. Momentum Score < 0
Entry Confirmation:
Wait for these additional confirmations:
Price closes above EMA 21 for long entries
Price closes below EMA 21 for short entries
Volume strength confirming the move
💡 Trading Strategy
Bullish Market Setup:
text
OVERALL BIAS: STRONG BULLISH
PRIMARY TREND: BULLISH
SECONDARY TREND: BULLISH
TREND STRENGTH: > 0.5
MOMENTUM: > 0.2
ACTION: Look for long entries on pullbacks
Bearish Market Setup:
text
OVERALL BIAS: STRONG BEARISH
PRIMARY TREND: BEARISH
SECONDARY TREND: BEARISH
TREND STRENGTH: < -0.5
MOMENTUM: < -0.2
ACTION: Look for short entries on bounces
Range-bound Market:
text
OVERALL BIAS: NEUTRAL
TREND STRENGTH: -0.3 to +0.3
ACTION: Avoid trend trades, consider mean reversion
🛡️ Risk Management
Position Sizing:
pinescript
// Conservative:
1-2% risk per trade
// Moderate:
2-3% risk per trade
// Aggressive:
3-5% risk per trade (not recommended)
Stop Loss Placement:
Initial Stops:
Long positions: Below recent swing low or EMA 150
Short positions: Above recent swing high or EMA 150
Trailing Stops:
Uses fast EMA (default: 8-period)
Automatically adjusts as price moves in your favor
Can be disabled in settings
Exit Strategies:
Profit Taking:
Take 50% profit at 1:1 risk-reward ratio
Trail remainder with fast EMA
Emergency Exits:
pinescript
// Long Position Exit:
1. Price rejection at highs (bearish engulfing)
2. EMA 9 crosses below EMA 21
3. Close below trailing stop
4. Trend Strength turns negative
// Short Position Exit:
1. Price rejection at lows (bullish engulfing)
2. EMA 9 crosses above EMA 21
3. Close above trailing stop
4. Trend Strength turns positive
🚀 Advanced Features
Multi-Timeframe Analysis:
The script automatically analyzes the 1-hour timeframe to:
Confirm primary trend direction
Identify higher timeframe support/resistance
Avoid trading against major trend
Volume Analysis:
Institutional Activity Detection:
Unusually high volume on breakouts
Declining volume on pullbacks
Buyer/Seller balance showing dominance
Market Structure Assessment:
Bullish Structure:
Price above all EMAs
Higher highs and higher lows
Strong volume on up moves
Bearish Structure:
Price below all EMAs
Lower highs and lower lows
Strong volume on down moves
📈 Practical Trading Examples
Example 1: Perfect Long Setup
text
DASHBOARD READING:
PRIMARY TREND: BULLISH ✅
SECONDARY TREND: BULLISH ✅
TREND STRENGTH: 0.72 ✅
MOMENTUM: 0.35 ✅
VOLUME: STRONG ✅
BUYER/SELLER: 0.45 ✅
MARKET STRUCTURE: BULLISH ✅
TRADING SIGNAL: LONG SETUP ✅
ACTION: Enter long on pullback to EMA 21
STOP LOSS: Below EMA 150
TARGET: Previous resistance level
Example 2: Avoid This Trade
text
DASHBOARD READING:
PRIMARY TREND: BULLISH ✅
SECONDARY TREND: BEARISH ❌
TREND STRENGTH: 0.15 ❌
MOMENTUM: -0.10 ❌
VOLUME: WEAK ❌
BUYER/SELLER: -0.20 ❌
MARKET STRUCTURE: NEUTRAL ❌
TRADING SIGNAL: NO SIGNAL ✅
ACTION: Stay out - conflicting signals
REASON: Weak momentum, bearish secondary trend
🔧 Customization Tips
For Scalpers (1-5 minute charts):
pinescript
ema9_len: 5
ema21_len: 13
fast_ema_stop_len: 3
For Swing Traders (4H-Daily charts):
pinescript
ema9_len: 9
ema21_len: 21
ema150_len: 50
ema200_len: 200
Color Customization:
You can modify colors in the script:
Change color.green to your preferred bullish color
Change color.red to your preferred bearish color
Adjust transparency with color.new(color, transparency)
❌ Common Mistakes to Avoid
Trading Against Primary Trend
Don't go long when PRIMARY TREND is BEARISH
Don't go short when PRIMARY TREND is BULLISH
Ignoring Risk Levels
HIGH RISK warning means reduce position size
LOW RISK means normal trading conditions
Chasing Entries
Wait for pullbacks in trending markets
Don't FOMO when signal appears late
Overriding the System
Trust the dashboard readings
Don't let emotions override signals
✅ Best Practices
Daily Routine:
Check higher timeframes first
Read dashboard before placing trades
Set alerts for key levels
Trade Management:
Set stops immediately after entry
Monitor trailing stops daily
Take partial profits at targets
Performance Tracking:
Keep trade journal
Review dashboard accuracy
Adjust parameters if needed
🆘 Troubleshooting
Common Issues:
Alerts Not Working:
Check TradingView alert settings
Ensure "Once Per Bar" is selected
Verify you're on real-time data
Dashboard Not Showing:
Check "Show Dashboard" is enabled
Ensure you're viewing latest bar
Try refreshing the chart
Lines Not Plotting:
Verify EMA toggles are ON
Check for sufficient historical data
Ensure script compiled without errors
🎉 Conclusion
This system provides everything you need for professional trading:
✅ Clear entry/exit signals
✅ Comprehensive market analysis
✅ Built-in risk management
✅ Real-time alerts
✅ Multi-timeframe context
Remember: No system is perfect. Always combine with price action analysis and proper risk management.
Pivot Regime Anchored VWAP [CHE] Pivot Regime Anchored VWAP — Detects body-based pivot regimes to classify swing highs and lows, anchoring volume-weighted average price lines directly at higher highs and lower lows for adaptive reference levels.
Summary
This indicator identifies shifts between top and bottom regimes through breakouts in candle body highs and lows, labeling swing points as higher highs, lower highs, lower lows, or higher lows. It then draws anchored volume-weighted average price lines starting from the most recent higher high and lower low, providing dynamic support and resistance that evolve with volume flow. These anchored lines differ from standard volume-weighted averages by resetting only at confirmed swing extremes, reducing noise in ranging markets while highlighting momentum shifts in trends.
Motivation: Why this design?
Traders often struggle with static reference lines that fail to adapt to changing market structures, leading to false breaks in volatile conditions or missed continuations in trends. By anchoring volume-weighted average price calculations to body pivot regimes—specifically at higher highs for resistance and lower lows for support—this design creates reference levels tied directly to price structure extremes. This approach addresses the problem of generic moving averages lagging behind swing confirmations, offering a more context-aware tool for intraday or swing trading.
What’s different vs. standard approaches?
- Baseline reference: Traditional volume-weighted average price indicators compute a running total from session start or fixed periods, often ignoring price structure.
- Architecture differences:
- Regime detection via body breakout logic switches between high and low focus dynamically.
- Anchoring limited to confirmed higher highs and lower lows, with historical recalculation for accurate line drawing.
- Polyline rendering rebuilds only on the last bar to manage performance.
- Practical effect: Charts show fewer, more meaningful lines that start at swing points, making it easier to spot confluences with structure breaks rather than cluttered overlays from continuous calculations.
How it works (technical)
The indicator first calculates the maximum and minimum of each candle's open and close to define body highs and lows. It then scans a lookback window for the highest body high and lowest body low. A top regime triggers when the body high from the lookback period exceeds the window's highest, and a bottom regime when the body low falls below the window's lowest. These regime shifts confirm pivots only when crossing from one state to the other.
For top pivots, it compares the new body high against the previous swing high: if greater, it marks a higher high and anchors a new line; otherwise, a lower high. The same logic applies inversely for bottom pivots. Anchored lines use cumulative price-volume products and volumes from the anchor bar onward, subtracting prior cumulatives to isolate the segment. On pivot confirmation, it loops backward from the current bar to the anchor, computing and storing points for the line. New points append as bars advance, ensuring the line reflects ongoing volume weighting.
Initialization uses persistent variables to track the last swing values and anchor bars, starting with neutral states. Data flows from regime detection to pivot classification, then to anchoring and point accumulation, with lines rendered globally on the final bar.
Parameter Guide
Pivot Length — Controls the lookback window for detecting body breakouts, influencing pivot frequency and sensitivity to recent action. Shorter values catch more pivots in choppy conditions; longer smooths for major swings. Default: 30 (bars). Trade-offs/Tips: Min 1; for intraday, try 10–20 to reduce lag but watch for noise; on daily, 50+ for stability.
Show Pivot Labels — Toggles display of text markers at swing points, aiding quick identification of higher highs, lower highs, lower lows, or higher lows. Default: true. Trade-offs/Tips: Disable in multi-indicator setups to declutter; useful for backtesting structure.
HH Color — Sets the line and label color for higher high anchored lines, distinguishing resistance levels. Default: Red (solid). Trade-offs/Tips: Choose contrasting hues for dark/light themes; pair with opacity for fills if added later.
LL Color — Sets the line and label color for lower low anchored lines, distinguishing support levels. Default: Lime (solid). Trade-offs/Tips: As above; green shades work well for bullish contexts without overpowering candles.
Reading & Interpretation
Higher high labels and red lines indicate potential resistance zones where volume weighting begins at a new swing top, suggesting sellers may defend prior highs. Lower low labels and lime lines mark support from a fresh swing bottom, with the line's slope reflecting buyer commitment via volume. Lower highs or higher lows appear as labels without new anchors, signaling possible range-bound action. Line proximity to price shows overextension; crosses may hint at regime shifts, but confirm with volume spikes.
Practical Workflows & Combinations
- Trend following: Enter longs above a rising lower low anchored line after higher low confirmation; filter with rising higher highs for uptrends. Use line breaks as trailing stops.
- Exits/Stops: In downtrends, exit shorts below a higher high line; set aggressive stops above it for scalps, conservative below for swings. Pair with momentum oscillators for divergence.
- Multi-asset/Multi-TF: Defaults suit forex/stocks on 1H–4H; on crypto 15M, shorten length to 15. Scale colors for dark themes; combine with higher timeframe anchors for confluence.
Behavior, Constraints & Performance
Closed-bar logic ensures pivots confirm after the lookback period, with no repainting on historical bars—live bars may adjust until regime shift. No higher timeframe calls, so minimal repaint risk beyond standard delays. Resources include a 2000-bar history limit, label/polyline caps at 200/50, and loops for historical point filling (up to current bar count from anchor, typically under 500 iterations). Known limits: In extreme gaps or low-volume periods, anchors may skew; lines absent until first pivots.
Sensible Defaults & Quick Tuning
Start with the 30-bar length for balanced pivot detection across most assets. For too-frequent pivots in ranges, increase to 50 for fewer signals. If lines lag in trends, reduce to 20 and enable labels for visual cues. In low-volatility assets, widen color contrasts; test on 100-bar history to verify stability.
What this indicator is—and isn’t
This is a structure-aware visualization layer for anchoring volume-weighted references at swing extremes, enhancing manual analysis of regimes and levels. It is not a standalone signal generator or predictive model—always integrate with broader context like order flow or news. Use alongside risk management and position sizing, not as isolated buy/sell triggers.
Many thanks to LuxAlgo for the original script "McDonald's Pattern ". The implementation for body pivots instead of wicks uses a = max(open, close), b = min(open, close) and then highest(a, length) / lowest(b, length). This filters noise from the wicks and detects breakouts over/under bodies. Unusual and targeted, super innovative.
Disclaimer
The content provided, including all code and materials, is strictly for educational and informational purposes only. It is not intended as, and should not be interpreted as, financial advice, a recommendation to buy or sell any financial instrument, or an offer of any financial product or service. All strategies, tools, and examples discussed are provided for illustrative purposes to demonstrate coding techniques and the functionality of Pine Script within a trading context.
Any results from strategies or tools provided are hypothetical, and past performance is not indicative of future results. Trading and investing involve high risk, including the potential loss of principal, and may not be suitable for all individuals. Before making any trading decisions, please consult with a qualified financial professional to understand the risks involved.
By using this script, you acknowledge and agree that any trading decisions are made solely at your discretion and risk.
Do not use this indicator on Heikin-Ashi, Renko, Kagi, Point-and-Figure, or Range charts, as these chart types can produce unrealistic results for signal markers and alerts.
Best regards and happy trading
Chervolino
Ichimoku PourSamadi Signal [TradingFinder] KijunSen Magic Number🔵 Introduction
The Ichimoku Kinko Hyo system is one of the most comprehensive market analysis tools ever created. Developed by Goichi Hosoda, a Japanese journalist in the 1930s, its purpose was to allow traders to recognize the balance between price, time, and momentum at a single glance. (In Japanese, Ichimoku literally means “one look.”)
At the core of the system lie five key components: Tenkan-sen (Conversion Line), Kijun-sen (Baseline), Chikou Span (Lagging Line), and the two leading spans, Senkou Span A and Senkou Span B, which together form the well-known Kumo or cloud representing both temporal structure and equilibrium zones in the market.
Although Ichimoku is commonly used to identify trends and support/resistance levels, a deeper layer of time philosophy exists within it. Ichimoku was not designed solely for price analysis but equally for time analysis.
In the classical model, the numerical cycles 9, 26, 52 reflect the natural rhythm of the market originally based on the Tokyo Stock Exchange’s trading schedule in the 1930s.
These values repeat across the system’s calculations, forming the foundation of Ichimoku’s time symmetry where price and time ultimately seek equilibrium.
In recent years, modern analysts have explored new approaches to extract time-based turning points from Ichimoku’s structure. One such approach is the analysis of flat segments on the Kijun-sen and Senkou B lines.
Whenever one of these lines remains flat for a period, it signals temporary balance between buyers and sellers; when the flat breaks, the market exits equilibrium and a new cycle begins.
This indicator is built precisely upon that philosophy. Following the timing methodology introduced by M.A. Poursamadi, the focus shifts away from price signals and line crossovers toward identifying flat periods on Kijun-sen (period 52) as time anchors.
From the first candle that changes the line’s slope, the tool begins a temporal count using a fixed sequence of key numbers: 5, 9, 13, 17, 26, 35, 43, 52, 63, 72, 81, 90.
Derived from both classical Ichimoku cycles and empirical testing, these numbers mark potential timing nodes where a market wave may end, a correction may begin, or a new leg may form.
Thus, this method serves not merely as another Ichimoku tool but as a temporal metronome for market structure a way to visualize moments when the market is ready to change rhythm, often before candles reveal it.
🔵 How to Use
The Kijun Timing BoX is built entirely on Ichimoku’s concept of time analysis.
Its core idea is that within every flat segment of the Kijun-sen, the market enters a temporary balance between opposing forces.
When that flat breaks, a new time cycle begins. From that first breakout candle, the indicator starts counting forward through the predefined time sequence(5, 9, 13, 17, 26, 35, 43, 52, 63, 72, 81, 90).
This counting framework creates a temporal map of market behavior, where each number represents an area where meaningful price fluctuations often occur.
A “meaningful fluctuation” does not necessarily imply reversal or continuation; rather, it marks a moment when the market’s internal energy balance shifts, typically visible as noticeable reactions on lower timeframes.
🟣 Identifying the Anchor Point
The first step is recognizing a valid flat zone on the Kijun-sen.
When this line remains flat for several candles and then changes slope, the indicator marks that bar as the Anchor, initiating the time count.
From that point onward, vertical gray lines appear at each interval in the key-number sequence, visualizing the time nodes ahead.
🟣 Reading the Timing Lines
Each numbered line represents a timing node a temporal point where a change in price rhythm is statistically more likely to occur.
At these nodes, the market may :
Enter a consolidation or minor correction phase.
Develop range-bound movement.
Or simply alter the speed and intensity of its move.
These behaviors do not imply a specific direction; they only highlight zones where time-based activity tends to cluster, giving traders a clearer view of cyclical rhythm.
🟣 Applying Time Analysis
The indicator’s primary use is to observe temporal order, not to predict price direction.
By tracking the distance between Anchors and the reactions that appear near major timing lines, traders can empirically identify each market’s characteristic rhythm—its own time DNA.
For example, one asset may consistently show significant fluctuations around the 13- and 26-bar marks,while another might react closer to 9 or 52. Recognizing such patterns helps traders understand how long typical cycles last before new phases of volatility emerge.
🟣 Combining with Other Tools
The indicator does not generate buy/sell signals on its own.
Its best use is in combination with price- or structure-based methods, to see whether meaningful price reactions occur around the same timing nodes.
In practice, it helps distinguish structured time-based fluctuations from random, noise-driven moves an insight often overlooked in conventional market analysis.
🔵 Settings
🟣 Logical Settings
KijunSen Period : Defines the baseline period used for timing analysis. Default = 52. It is the main line for detecting flats and generating time anchors.
Flat Event Filter : Controls how flat segments are validated before triggering a new timing event.
All : Every flat triggers a new Timing Box.
Automatic : Only flats longer than the historical average are used (recommended).
Custom : User manually defines the minimum flat length via Custom Count.
Update Timing Analysis BoX Per Event : If enabled, a new Timing Box is drawn each time a new flat event occurs. If disabled, the box completes its 90-bar window before refreshing.
🟣 Ichimoku Settings
TenkanSen Period : Defines the period for the Conversion Line (Tenkan-sen). Default = 9.
KijunSen Period : Sets the standard Ichimoku baseline (not the timing line). Default = 26.
Span B Period : Defines the period for Senkou Span B, the slower cloud boundary. Default = 52.
Shift Lines : Offsets cloud projection into the future. Default = 26.
🟣 Display Settings
Users can show or hide all Ichimoku lines Tenkan-sen, Kijun-sen, Chikou Span, Span A, and Span B as well as the Ichimoku Cloud.
They can also customize the color of each element to match personal chart preferences and improve visibility.
🔵 Conclusion
This analytical approach transforms Ichimoku’s time philosophy into a visual and measurable framework. A flat Kijun-sen represents a moment of market equilibrium; when its slope shifts, a new temporal cycle begins.
The purpose is not to forecast price direction but to highlight periods when meaningful fluctuations are more likely to develop.
Through this perspective, traders can observe the hidden rhythm of market time and expand their analysis beyond price into a broader time-cycle dimension.
Ultimately, the method revives Ichimoku’s original principle: the market can only be truly understood through the simultaneous harmony of price, time, and balance.
ICT Venom Trading Model [TradingFinder] SMC NY Session 2025SetupIntroduction
The ICT Venom Model is one of the most advanced strategies in the ICT framework, designed for intraday trading on major US indices such as US100, US30, and US500. This model is rooted in liquidity theory, time and price dynamics, and institutional order flow.
The Venom Model focuses on detecting Liquidity Sweeps, identifying Fair Value Gaps (FVG), and analyzing Market Structure Shifts (MSS). By combining these ICT core concepts, traders can filter false breakouts, capture sharp reversals, and align their entries with the real institutional liquidity flow during the New York Session.
Key Highlights of ICT Venom Model :
Intraday focus : Optimized for US indices (US100, US30, US500).
Time element : Critical window is 08:00–09:30 AM (Venom Box).
Liquidity sweep logic : Price grabs liquidity at 09:30 AM open.
Confirmation tools : MSS, CISD, FVG, and Order Blocks.
Dual setups : Works in both Bullish Venom and Bearish Venom conditions.
At its core, the ICT Venom Strategy is a framework that explains how institutional players manipulate liquidity pools by engineering false breakouts around the initial range of the market. Between 08:00 and 09:30 AM New York time, a range called the “Venom Box” is formed.
This range acts as a trap for retail traders, and once the 09:30 AM market open occurs, price usually sweeps either the high or the low of this box to collect stop-loss liquidity. After this liquidity grab, the market often reverses sharply, giving birth to a classic Bullish Venom Setup or Bearish Venom Setup
The Venom Model (ICT Venom Trading Strategy) is not just a pattern recognition tool but a precise institutional trading model based on time, liquidity, and market structure. By understanding the Initial Balance Range, watching for Liquidity Sweeps, and entering trades from FVG zones or Order Blocks, traders can anticipate market reversals with high accuracy. This strategy is widely respected among ICT followers because it offers both risk management discipline and clear entry/exit conditions. In short, the Venom Model transforms liquidity manipulation into actionable trading opportunities.
Bullish Setup :
Bearish Setup :
🔵 How to Use
The ICT Venom Model is applied by observing price behavior during the early hours of the New York session. The first step is to define the Initial Range, also called the Venom Box, which is formed between 08:00 and 09:30 AM EST. This range marks the high and low points where institutional traders often create traps for retail participants. Once the official market opens at 09:30 AM, price usually sweeps either the top or bottom of this box to collect liquidity.
After this liquidity grab, the market tends to reverse in alignment with the true directional bias. To confirm the setup, traders look for signals such as a Market Structure Shift (MSS), Change in State of Delivery (CISD), or the appearance of a Fair Value Gap (FVG). These elements validate the reversal and provide precise levels for trade execution.
🟣 Bullish Setup
In a Bullish Venom Setup, the market first sweeps the low of the Venom Box after 09:30 AM, triggering sell-side liquidity collection. This downward move is often sharp and deceptive, designed to stop out retail long positions and attract new sellers. Once liquidity is taken, the market typically shifts direction, forming an MSS or CISD that signals a reversal to the upside.
Traders then wait for price to retrace into a Fair Value Gap or a demand-side Order Block created during the reversal leg. This retracement offers the ideal entry point for long positions. Stop-loss placement should be just below the liquidity sweep low, while profit targets are set at the Venom Box high and, if momentum continues, at higher session or daily highs.
🟣 Bearish Setup
In a Bearish Venom Setup, the process is similar but reversed. After the Initial Range is defined, if price breaks above the Venom Box high following the 09:30 AM open, it signals a false breakout designed to collect buy-side liquidity. This move usually traps eager buyers and clears out stop-losses above the high.
After the liquidity sweep, confirmation comes through an MSS or CISD pointing to a reversal downward. At this stage, traders anticipate a retracement into a Fair Value Gap or a supply-side Order Block formed during the reversal. Short entries are taken within this zone, with stop-loss positioned just above the liquidity sweep high. The logical profit targets include the Venom Box low and, in stronger bearish momentum, deeper session or daily lows.
🔵 Settings
Refine Order Block : Enables finer adjustments to Order Block levels for more accurate price responses.
Mitigation Level OB : Allows users to set specific reaction points within an Order Block, including: Proximal: Closest level to the current price. 50% OB: Midpoint of the Order Block. Distal: Farthest level from the current price.
FVG Filter : The Judas Swing indicator includes a filter for Fair Value Gap (FVG), allowing different filtering based on FVG width: FVG Filter Type: Can be set to "Very Aggressive," "Aggressive," "Defensive," or "Very Defensive." Higher defensiveness narrows the FVG width, focusing on narrower gaps.
Mitigation Level FVG : Like the Order Block, you can set price reaction levels for FVG with options such as Proximal, 50% OB, and Distal.
CISD : The Bar Back Check option enables traders to specify the number of past candles checked for identifying the CISD Level, enhancing CISD Level accuracy on the chart.
🔵 Conclusion
The ICT Venom Model is more than just a reversal setup; it is a complete intraday trading framework that blends liquidity theory, time precision, and market structure analysis. By focusing on the Initial Range between 08:00 and 09:30 AM New York time and observing how price reacts at the 09:30 AM open, traders can identify liquidity sweeps that reveal institutional intentions.
Whether in a Bullish Venom Setup or a Bearish Venom Setup, the model allows for precise entries through Fair Value Gaps (FVGs) and Order Blocks, while maintaining clear risk management with well-defined stop-loss and target levels.
Ultimately, the ICT Venom Model provides traders with a structured way to filter false moves and align their trades with institutional order flow. Its strength lies in transforming liquidity manipulation into actionable opportunities, giving intraday traders an edge in timing, accuracy, and consistency. For those who master its logic, the Venom Model becomes not only a strategy for entry and exit, but also a deeper framework for understanding how liquidity truly drives price in the New York session.
TPO Levels [VAH/POC/VAL] with Poor H/L, Single Prints & NPOCs### 🎯 Advanced Market Profile & Key Level Analysis
This script is a unique and comprehensive technical analysis tool designed to help traders understand market structure, value, and key liquidity levels using the principles of **Auction Market Theory** and **Market Profile**.
This script is unique (and shouldn't be censored) because :
It allows large history of levels to be displayed
Accurate as possible tick size
Doesn't draw a profile but only the actual levels
Supports multi-timeframe levels even on the daily mode giving macro context
There is no indicator out there that does it
While these concepts are universal, this indicator was built primarily for the dynamic, 24/7 nature of the **cryptocurrency market**. It helps you move beyond simple price action to understand *why* the market is moving, which is especially crucial in the volatile crypto space.
### ## 📊 The Concepts Behind the Calculations
To use this script effectively, it's important to understand the core concepts it is built upon. The entire script is self-contained and does not require other indicators.
* **What is Market Profile?**
Market Profile is a unique charting technique that organizes price and time data to reveal market structure. It's built from **Time Price Opportunities (TPOs)**, which are 30-minute periods of market activity. By stacking these TPOs, the script builds a distribution, showing which price levels were most accepted (heavily traded) and which were rejected (lightly traded) during a session.
* **What is the Value Area (VA)?**
The Value Area is the heart of the profile. It represents the price range where **70%** of the session's trading volume occurred. This is considered the "fair value" zone where both buyers and sellers were in general agreement.
* **Point of Control (POC):** The single price level with the most TPOs. This was the most accepted or "fairest" price of the session and acts as a gravitational line for price.
* **Value Area High (VAH):** The upper boundary of the 70% value zone.
* **Value Area Low (VAL):** The lower boundary of the 70% value zone.
VAH and VAL are dynamic support and resistance levels. Trading outside the previous session's value area can signal the start of a new trend.
***
### ## 📈 Key Features Explained
This script automatically calculates and displays the following critical market-generated information:
* **Multi-Timeframe Market Profile**
Automatically draws Daily, Weekly, and Monthly profiles, allowing you to analyze market structure across different time horizons. The script preserves up to 20 historical sessions to provide deep market context.
* **Naked Point of Control (nPOC)**
A "Naked" POC is a Point of Control from a previous session that has **not** been revisited by price. These levels often act as powerful magnets for price, representing areas of unfinished business that the market may seek to retest. The script tracks and displays Daily, Weekly, and Monthly nPOCs until they are touched.
* **Single Prints (Imbalance Zones)**
A Single Print is a price level where only one TPO traded during the session's development. This signifies a rapid, aggressive price move and an imbalanced market. These areas, like gaps in a traditional chart, are frequently revisited as the market seeks to "fill in" these thin parts of the profile.
* **Poor Structure (Unfinished Auctions)**
A **Poor High** or **Poor Low** occurs when the top or bottom of a profile is flat, with two or more TPOs at the extreme price. This suggests that the auction in that direction was weak and inconclusive. These weak structures often signal a high probability that price will eventually break that high or low.
***
### ## 💡 How to Use This Indicator
This tool is not a signal generator but an analytical framework to improve your trading decisions.
1. **Determine Market Context:** Start by asking: Is the current price trading *inside* or *outside* the previous session's Value Area?
* **Inside VA:** The market is in a state of balance or range-bound. Look for trades between the VAH and VAL.
* **Outside VA:** The market is in a state of imbalance and may be starting a trend. Look for continuation or acceptance of prices outside the prior value.
2. **Identify Key Levels:**
* Use historical **nPOCs** as potential profit targets or areas to watch for a price reaction.
* Treat historical **VAH** and **VAL** levels as significant support and resistance zones.
* Note where **Single Prints** are. These are often price magnets that may get "filled" in the future.
3. **Spot Weakness:**
* A **Poor High** suggests weak resistance that may be easily broken.
* A **Poor Low** suggests weak support, signaling a potential for a continued move lower if broken.
***
### ## ⚙️ Customization & Crypto Presets
The indicator is highly customizable, allowing you to change colors, transparency, the number of historical sessions, and more.
To help traders get started quickly, the indicator includes **built-in layout presets** specifically calibrated for major cryptocurrencies: ** BINANCE:BTCUSDT.P , BINANCE:ETHUSDT.P , and BINANCE:SOLUSDT.P **. These presets automatically adjust key visual parameters to better suit the unique price characteristics and volatility of each asset, providing an optimized view right out of the box.
***
### ## ⚠️ Disclaimer
This indicator is a tool for market analysis and should not be interpreted as direct buy or sell signals. It provides information based on historical price action, which does not guarantee future results. Trading involves significant risk, and you should always use proper risk management. This script is designed for use on standard chart types (e.g., Candlesticks, Bar) and may produce misleading information on non-standard charts.
MarketStructureLibMarketStructure Library
This library extends the "MarketStructure" library by mickes () under the Mozilla Public License 2.0, credited to mickes. It provides functions for detecting and visualizing market structure, including Break of Structure (BOS), Change of Character (CHoCH), Equal High/Low (EQH/EQL), and liquidity zones, with enhancements for improved accuracy and customization.
Functionality
Market Structure Detection: Identifies internal (orderflow) and swing market structures using pivot points, with support for BOS, CHoCH, and EQH/EQL.
Volatility Filter: Only confirms pivots when the ATR exceeds a user-defined threshold, reducing false signals in low-volatility markets.
Trend Strength Metric: Calculates a trend strength score based on pivot frequency and volatility, stored in the Structure type for use in scripts.
Customizable Visualizations: Allows users to configure line styles and colors for BOS and CHoCH, and label sizes for pivots, BOS, CHoCH, and liquidity.
Liquidity Zones: Visualizes liquidity levels with confirmation bars and lookback periods.
Methodology
Pivot Detection: Uses ta.pivothigh and ta.pivotlow with a volatility filter (ATR multiplier) to confirm significant pivots.
Trend Strength: Computes a score as pivotCount / LeftLength * (currentATR / ATR), reflecting trend reliability based on pivot frequency and market volatility.
BOS/CHoCH Logic: Detects BOS when price breaks a pivot in the trend direction, and CHoCH when price reverses against the trend, with labels for "MSF" or "MSF+" based on pivot patterns.
EQH/EQL Zones: Creates boxes around equal highs/lows within an ATR-based threshold, with optional extension.
Visualization: Draws lines and labels for BOS, CHoCH, and liquidity, with user-defined styles, colors, and sizes.
Usage
Integration: Import into Pine Script indicators (e.g., import Fenomentn/MarketStructure/1) to analyze market structure.
Configuration: Set pivot lengths, volatility threshold, label sizes, and visualization styles via script inputs.
Alerts: Enable alerts for BOS, CHoCH, and EQH/EQL events, triggered on bar close to avoid repainting.
Best Practices: Use on forex or crypto charts (1m to 12h timeframes) for optimal results. Adjust the volatility threshold for different market conditions.
Originality
This library builds on mickes’ framework by adding:
A volatility-based pivot filter to enhance signal accuracy.
A trend strength metric for assessing trend reliability.
Dynamic label sizing and customizable visualization styles for better usability. No additional open-source code was reused beyond mickes’ library, credited under MPL 2.0.
Developed by Fenomentn. Published under Mozilla Public License 2.0.
Institutional Support/Resistance Locator🏛️ Institutional Support/Resistance Locator
Overview
The Institutional Support/Resistance Locator identifies high-probability demand and supply zones based on strong price rejection, large candle bodies, and elevated volume . These zones are commonly targeted or defended by institutional participants, helping traders anticipate potential reversal or continuation areas.
⸻
How It Works
The indicator uses a confluence of conditions to detect zones:
• Large Body Candles: Body size must exceed the moving average body size multiplied by a user-defined factor.
• High Volume: Volume must exceed the moving average volume by a configurable multiplier.
• Wick Rejection: Candles must show strong upper or lower wicks indicating aggressive rejection.
• If all criteria are met:
• Bullish candles form a Demand Zone.
• Bearish candles form a Supply Zone.
Each zone is plotted for a customizable number of future bars, representing areas where institutions may re-engage with the market.
⸻
Key Features
• ✅ Highlights institutional demand and supply areas dynamically
• ✅ Customizable sensitivity: body, volume, wick, padding, and zone extension
• ✅ Zones plotted as translucent regions with auto-expiry
• ✅ Works across all timeframes and markets
⸻
How to Use
• Trend Traders: Use demand zones for potential bounce entries in uptrends, and supply zones for pullback short entries in downtrends.
• Range Traders: Use zones as potential reversal points inside sideways market structures.
• Scalpers & Intraday Traders: Combine with volume or price action near zones for refined entries.
Always validate zone reactions with supporting indicators or price behavior.
⸻
Why This Combination?
The combination of wick rejection, volume confirmation, and large candle structure is designed to reflect footprints of smart money. Rather than relying on fixed pivots or subjective zones, this logic adapts to the current market context with statistically grounded conditions.
⸻
Why It’s Worth Using
This tool offers traders a structured way to interpret institutional activity on charts without relying on guesswork. By plotting potential high-impact areas, it helps improve reaction time.
⸻
Note :
• This script is open-source and non-commercial.
• No performance guarantees or unrealistic claims are made.
• It is intended for educational and analytical purposes only.
FVG, Swing, Target, D/W/M High Low Detector Basic by Trader Riaz"FVG, Swing, Target, D/W/M High Low Detector Basic by Trader Riaz " is a powerful TradingView indicator designed to enhance your trading strategy by identifying key market structures and levels. This all-in-one tool detects Fair Value Gaps (FVGs), Swing Highs/Lows, and previous Day, Previous Week, and Previous Month Highs/Lows, helping traders make informed decisions with ease.
Key Features:
Bullish & Bearish FVG Detection: Highlights Fair Value Gaps with customizable colors, labels, and extension options.
Swing Highs & Lows: Automatically detects and marks Swing Highs and Lows with adjustable display settings and extensions.
Next Target Levels: Identifies potential price targets based on market direction (rising or falling).
Daily, Weekly, and Monthly High/Low Levels: Displays previous day, week, and month highs/lows with customizable colors.
Customizable Settings: Fully adjustable inputs for colors, number of levels to display, and extension periods.
Clean Visuals: Intuitive and non-intrusive design with dashed lines, labels, and tooltips for better chart readability.
This indicator is ideal for traders looking to identify key price levels, improve market structure analysis, and enhance their trading strategies.
Happy Trading,
Trader Riaz
ICT FVG & Swing Detector Basic by Trader RiazICT FVG & Swing Detector Basic by Trader Riaz
Unlock Precision Trading with the Ultimate Fair Value Gap (FVG) and Swing Detection Tool!
Developed by Trader Riaz , the ICT FVG and Swing Detector Basic is a powerful Pine Script indicator designed to help traders identify key market structures with ease. Whether you're a day trader, swing trader, or scalper, this indicator provides actionable insights by detecting Bullish and Bearish Fair Value Gaps (FVGs) and Swing Highs/Lows on any timeframe. Perfect for trading forex, stocks, crypto, and more on TradingView!
Key Features:
1: Bullish and Bearish FVG Detection
- Automatically identifies Bullish FVGs (highlighted in green) and Bearish FVGs (highlighted in red) to spot potential reversal or continuation zones.
- Displays FVGs as shaded boxes with a dashed midline at 70% opacity, making it easy to see the midpoint of the gap for precise entries and exits.
- Labels are placed inside the FVG boxes at the extreme right for clear visibility.
2: Customizable FVG Display
- Control the number of Bullish and Bearish FVGs displayed on the chart with user-defined inputs (fvg_bull_count and fvg_bear_count).
- Toggle the visibility of Bullish and Bearish FVGs with simple checkboxes (show_bull_fvg and show_bear_fvg) to declutter your chart.
3: Swing High and Swing Low Detection
- Detects Swing Highs (blue lines) and Swing Lows (red lines) to identify key market turning points.
- Labels are positioned at the extreme right edge of the lines for better readability and alignment.
- Customize the number of Swing Highs and Lows displayed (swing_high_count and swing_low_count) to focus on the most recent market structures.
4: Fully Customizable Display
- Toggle visibility for Swing Highs and Lows (show_swing_high and show_swing_low) to suit your trading style.
- Adjust the colors of Swing High and Low lines (swing_high_color and swing_low_color) to match your chart preferences.
5: Clean and Efficient Design
- Built with Pine Script v6 for optimal performance on TradingView.
- Automatically removes older FVGs and Swing points when the user-defined count is exceeded, keeping your chart clean and focused.
- Labels are strategically placed to avoid clutter while providing clear information.
Why Use This Indicator?
Precision Trading: Identify high-probability setups with FVGs and Swing points, commonly used in Smart Money Concepts (SMC) and Institutional Trading strategies.
User-Friendly: Easy-to-use inputs allow traders of all levels to customize the indicator to their needs.
Versatile: Works on any market (Forex, Stocks, Crypto, Commodities) and timeframe (1M, 5M, 1H, 4H, Daily, etc.).
Developed by Trader Riaz: Backed by the expertise of Trader Riaz, a seasoned trader dedicated to creating tools that empower the TradingView community.
How to Use:
- Add the Custom FVG and Swing Detector to your chart on TradingView.
- Adjust the input settings to control the number of FVGs and Swing points displayed.
- Toggle visibility for Bullish/Bearish FVGs and Swing Highs/Lows as needed.
- Use the identified FVGs and Swing points to plan your trades, set stop-losses, and target key levels.
Ideal For:
- Traders using Smart Money Concepts (SMC), Price Action, or Market Structure strategies.
- Those looking to identify liquidity grabs, imbalances, and trend reversals.
- Beginners and advanced traders seeking a reliable tool to enhance their technical analysis.
Happy trading!
paranimonipobre
Chart Description: Buy Low, Sell High with Market Structure
This chart utilizes a dynamic trading strategy based on Bollinger Bands, RSI, and market structure analysis to identify high-probability buy and sell signals while aligning with prevailing trends.
Key Elements:
Bollinger Bands:
The upper (red) and lower (green) bands define volatility boundaries based on standard deviations.
The middle line (blue) represents the 20-period simple moving average.
Market Structure:
Swing highs (red triangles labeled "SH") and swing lows (green triangles labeled "SL") are identified to analyze the trend.
Background colors indicate trend direction:
Green Background: Uptrend (Higher Lows).
Red Background: Downtrend (Lower Highs).
RSI Indicator:
Shown in a separate pane, with overbought (red) at 70 and oversold (green) at 30.
Helps confirm signal validity by identifying momentum extremes.
Buy and Sell Signals:
Buy Signals (Green):
Triggered when the price crosses above the lower Bollinger Band, RSI is oversold (<30), and the market is in an uptrend.
Displayed as green "BUY" labels below bars.
Sell Signals (Red):
Triggered when the price crosses below the upper Bollinger Band, RSI is overbought (>70), and the market is in a downtrend.
Displayed as red "SELL" labels above bars.
How to Use:
Trend Identification:
Follow market structure analysis to determine the current trend direction.
Trade only in the direction of the trend (e.g., buy in an uptrend, sell in a downtrend).
Signal Confirmation:
Look for signals aligning with Bollinger Bands, RSI levels, and market structure.
Ignore signals that conflict with the trend to avoid false entries.
Market Conditions:
Best suited for trending markets with clear higher lows or lower highs.
Signals in choppy or sideways markets may require additional confirmation.
Trading IQ - ICT LibraryLibrary "ICTlibrary"
Used to calculate various ICT related price levels and strategies. An ongoing project.
Hello Coders!
This library is meant for sourcing ICT related concepts. While some functions might generate more output than you require, you can specify "Lite Mode" as "true" in applicable functions to slim down necessary inputs.
isLastBar(userTF)
Identifies the last bar on the chart before a timeframe change
Parameters:
userTF (simple int) : the timeframe you wish to calculate the last bar for, must be converted to integer using 'timeframe.in_seconds()'
Returns: bool true if bar on chart is last bar of higher TF, dalse if bar on chart is not last bar of higher TF
necessaryData(atrTF)
returns necessaryData UDT for historical data access
Parameters:
atrTF (float) : user-selected timeframe ATR value.
Returns: logZ. log return Z score, used for calculating order blocks.
method gradBoxes(gradientBoxes, idColor, timeStart, bottom, top, rightCoordinate)
creates neon like effect for box drawings
Namespace types: array
Parameters:
gradientBoxes (array) : an array.new() to store the gradient boxes
idColor (color)
timeStart (int) : left point of box
bottom (float) : bottom of box price point
top (float) : top of box price point
rightCoordinate (int) : right point of box
Returns: void
checkIfTraded(tradeName)
checks if recent trade is of specific name
Parameters:
tradeName (string)
Returns: bool true if recent trade id matches target name, false otherwise
checkIfClosed(tradeName)
checks if recent closed trade is of specific name
Parameters:
tradeName (string)
Returns: bool true if recent closed trade id matches target name, false otherwise
IQZZ(atrMult, finalTF)
custom ZZ to quickly determine market direction.
Parameters:
atrMult (float) : an atr multiplier used to determine the required price move for a ZZ direction change
finalTF (string) : the timeframe used for the atr calcuation
Returns: dir market direction. Up => 1, down => -1
method drawBos(id, startPoint, getKeyPointTime, getKeyPointPrice, col, showBOS, isUp)
calculates and draws Break Of Structure
Namespace types: array
Parameters:
id (array)
startPoint (chart.point)
getKeyPointTime (int) : the actual time of startPoint, simplystartPoint.time
getKeyPointPrice (float) : the actual time of startPoint, simplystartPoint.price
col (color) : color of the BoS line / label
showBOS (bool) : whether to show label/line. This function still calculates internally for other ICT related concepts even if not drawn.
isUp (bool) : whether BoS happened during price increase or price decrease.
Returns: void
method drawMSS(id, startPoint, getKeyPointTime, getKeyPointPrice, col, showMSS, isUp, upRejections, dnRejections, highArr, lowArr, timeArr, closeArr, openArr, atrTFarr, upRejectionsPrices, dnRejectionsPrices)
calculates and draws Market Structure Shift. This data is also used to calculate Rejection Blocks.
Namespace types: array
Parameters:
id (array)
startPoint (chart.point)
getKeyPointTime (int) : the actual time of startPoint, simplystartPoint.time
getKeyPointPrice (float) : the actual time of startPoint, simplystartPoint.price
col (color) : color of the MSS line / label
showMSS (bool) : whether to show label/line. This function still calculates internally for other ICT related concepts even if not drawn.
isUp (bool) : whether MSS happened during price increase or price decrease.
upRejections (array)
dnRejections (array)
highArr (array) : array containing historical highs, should be taken from the UDT "necessaryData" defined above
lowArr (array) : array containing historical lows, should be taken from the UDT "necessaryData" defined above
timeArr (array) : array containing historical times, should be taken from the UDT "necessaryData" defined above
closeArr (array) : array containing historical closes, should be taken from the UDT "necessaryData" defined above
openArr (array) : array containing historical opens, should be taken from the UDT "necessaryData" defined above
atrTFarr (array) : array containing historical atr values (of user-selected TF), should be taken from the UDT "necessaryData" defined above
upRejectionsPrices (array) : array containing up rejections prices. Is sorted and used to determine selective looping for invalidations.
dnRejectionsPrices (array) : array containing down rejections prices. Is sorted and used to determine selective looping for invalidations.
Returns: void
method getTime(id, compare, timeArr)
gets time of inputted price (compare) in an array of data
this is useful when the user-selected timeframe for ICT concepts is greater than the chart's timeframe
Namespace types: array
Parameters:
id (array) : the array of data to search through, to find which index has the same value as "compare"
compare (float) : the target data point to find in the array
timeArr (array) : array of historical times
Returns: the time that the data point in the array was recorded
method OB(id, highArr, signArr, lowArr, timeArr, sign)
store bullish orderblock data
Namespace types: array
Parameters:
id (array)
highArr (array) : array of historical highs
signArr (array) : array of historical price direction "math.sign(close - open)"
lowArr (array) : array of historical lows
timeArr (array) : array of historical times
sign (int) : orderblock direction, -1 => bullish, 1 => bearish
Returns: void
OTEstrat(OTEstart, future, closeArr, highArr, lowArr, timeArr, longOTEPT, longOTESL, longOTElevel, shortOTEPT, shortOTESL, shortOTElevel, structureDirection, oteLongs, atrTF, oteShorts)
executes the OTE strategy
Parameters:
OTEstart (chart.point)
future (int) : future time point for drawings
closeArr (array) : array of historical closes
highArr (array) : array of historical highs
lowArr (array) : array of historical lows
timeArr (array) : array of historical times
longOTEPT (string) : user-selected long OTE profit target, please create an input.string() for this using the example below
longOTESL (int) : user-selected long OTE stop loss, please create an input.string() for this using the example below
longOTElevel (float) : long entry price of selected retracement ratio for OTE
shortOTEPT (string) : user-selected short OTE profit target, please create an input.string() for this using the example below
shortOTESL (int) : user-selected short OTE stop loss, please create an input.string() for this using the example below
shortOTElevel (float) : short entry price of selected retracement ratio for OTE
structureDirection (string) : current market structure direction, this should be "Up" or "Down". This is used to cancel pending orders if market structure changes
oteLongs (bool) : input.bool() for whether OTE longs can be executed
atrTF (float) : atr of the user-seleceted TF
oteShorts (bool) : input.bool() for whether OTE shorts can be executed
@exampleInputs
oteLongs = input.bool(defval = false, title = "OTE Longs", group = "Optimal Trade Entry")
longOTElevel = input.float(defval = 0.79, title = "Long Entry Retracement Level", options = , group = "Optimal Trade Entry")
longOTEPT = input.string(defval = "-0.5", title = "Long TP", options = , group = "Optimal Trade Entry")
longOTESL = input.int(defval = 0, title = "How Many Ticks Below Swing Low For Stop Loss", group = "Optimal Trade Entry")
oteShorts = input.bool(defval = false, title = "OTE Shorts", group = "Optimal Trade Entry")
shortOTElevel = input.float(defval = 0.79, title = "Short Entry Retracement Level", options = , group = "Optimal Trade Entry")
shortOTEPT = input.string(defval = "-0.5", title = "Short TP", options = , group = "Optimal Trade Entry")
shortOTESL = input.int(defval = 0, title = "How Many Ticks Above Swing Low For Stop Loss", group = "Optimal Trade Entry")
Returns: void (0)
displacement(logZ, atrTFreg, highArr, timeArr, lowArr, upDispShow, dnDispShow, masterCoords, labelLevels, dispUpcol, rightCoordinate, dispDncol, noBorders)
calculates and draws dispacements
Parameters:
logZ (float) : log return of current price, used to determine a "significant price move" for a displacement
atrTFreg (float) : atr of user-seleceted timeframe
highArr (array) : array of historical highs
timeArr (array) : array of historical times
lowArr (array) : array of historical lows
upDispShow (int) : amount of historical upside displacements to show
dnDispShow (int) : amount of historical downside displacements to show
masterCoords (map) : a map to push the most recent displacement prices into, useful for having key levels in one data structure
labelLevels (string) : used to determine label placement for the displacement, can be inside box, outside box, or none, example below
dispUpcol (color) : upside displacement color
rightCoordinate (int) : future time for displacement drawing, best is "last_bar_time"
dispDncol (color) : downside displacement color
noBorders (bool) : input.bool() to remove box borders, example below
@exampleInputs
labelLevels = input.string(defval = "Inside" , title = "Box Label Placement", options = )
noBorders = input.bool(defval = false, title = "No Borders On Levels")
Returns: void
method getStrongLow(id, startIndex, timeArr, lowArr, strongLowPoints)
unshift strong low data to array id
Namespace types: array
Parameters:
id (array)
startIndex (int) : the starting index for the timeArr array of the UDT "necessaryData".
this point should start from at least 1 pivot prior to find the low before an upside BoS
timeArr (array) : array of historical times
lowArr (array) : array of historical lows
strongLowPoints (array) : array of strong low prices. Used to retrieve highest strong low price and see if need for
removal of invalidated strong lows
Returns: void
method getStrongHigh(id, startIndex, timeArr, highArr, strongHighPoints)
unshift strong high data to array id
Namespace types: array
Parameters:
id (array)
startIndex (int) : the starting index for the timeArr array of the UDT "necessaryData".
this point should start from at least 1 pivot prior to find the high before a downside BoS
timeArr (array) : array of historical times
highArr (array) : array of historical highs
strongHighPoints (array)
Returns: void
equalLevels(highArr, lowArr, timeArr, rightCoordinate, equalHighsCol, equalLowsCol, liteMode)
used to calculate recent equal highs or equal lows
Parameters:
highArr (array) : array of historical highs
lowArr (array) : array of historical lows
timeArr (array) : array of historical times
rightCoordinate (int) : a future time (right for boxes, x2 for lines)
equalHighsCol (color) : user-selected color for equal highs drawings
equalLowsCol (color) : user-selected color for equal lows drawings
liteMode (bool) : optional for a lite mode version of an ICT strategy. For more control over drawings leave as "True", "False" will apply neon effects
Returns: void
quickTime(timeString)
used to quickly determine if a user-inputted time range is currently active in NYT time
Parameters:
timeString (string) : a time range
Returns: true if session is active, false if session is inactive
macros(showMacros, noBorders)
used to calculate and draw session macros
Parameters:
showMacros (bool) : an input.bool() or simple bool to determine whether to activate the function
noBorders (bool) : an input.bool() to determine whether the box anchored to the session should have borders
Returns: void
po3(tf, left, right, show)
use to calculate HTF po3 candle
@tip only call this function on "barstate.islast"
Parameters:
tf (simple string)
left (int) : the left point of the candle, calculated as bar_index + left,
right (int) : :the right point of the candle, calculated as bar_index + right,
show (bool) : input.bool() whether to show the po3 candle or not
Returns: void
silverBullet(silverBulletStratLong, silverBulletStratShort, future, userTF, H, L, H2, L2, noBorders, silverBulletLongTP, historicalPoints, historicalData, silverBulletLongSL, silverBulletShortTP, silverBulletShortSL)
used to execute the Silver Bullet Strategy
Parameters:
silverBulletStratLong (simple bool)
silverBulletStratShort (simple bool)
future (int) : a future time, used for drawings, example "last_bar_time"
userTF (simple int)
H (float) : the high price of the user-selected TF
L (float) : the low price of the user-selected TF
H2 (float) : the high price of the user-selected TF
L2 (float) : the low price of the user-selected TF
noBorders (bool) : an input.bool() used to remove the borders from box drawings
silverBulletLongTP (series silverBulletLevels)
historicalPoints (array)
historicalData (necessaryData)
silverBulletLongSL (series silverBulletLevels)
silverBulletShortTP (series silverBulletLevels)
silverBulletShortSL (series silverBulletLevels)
Returns: void
method invalidFVGcheck(FVGarr, upFVGpricesSorted, dnFVGpricesSorted)
check if existing FVGs are still valid
Namespace types: array
Parameters:
FVGarr (array)
upFVGpricesSorted (array) : an array of bullish FVG prices, used to selective search through FVG array to remove invalidated levels
dnFVGpricesSorted (array) : an array of bearish FVG prices, used to selective search through FVG array to remove invalidated levels
Returns: void (0)
method drawFVG(counter, FVGshow, FVGname, FVGcol, data, masterCoords, labelLevels, borderTransp, liteMode, rightCoordinate)
draws FVGs on last bar
Namespace types: map
Parameters:
counter (map) : a counter, as map, keeping count of the number of FVGs drawn, makes sure that there aren't more FVGs drawn
than int FVGshow
FVGshow (int) : the number of FVGs to show. There should be a bullish FVG show and bearish FVG show. This function "drawFVG" is used separately
for bearish FVG and bullish FVG.
FVGname (string) : the name of the FVG, "FVG Up" or "FVG Down"
FVGcol (color) : desired FVG color
data (FVG)
masterCoords (map) : a map containing the names and price points of key levels. Used to define price ranges.
labelLevels (string) : an input.string with options "Inside", "Outside", "Remove". Determines whether FVG labels should be inside box, outside,
or na.
borderTransp (int)
liteMode (bool)
rightCoordinate (int) : the right coordinate of any drawings. Must be a time point.
Returns: void
invalidBlockCheck(bullishOBbox, bearishOBbox, userTF)
check if existing order blocks are still valid
Parameters:
bullishOBbox (array) : an array declared using the UDT orderBlock that contains bullish order block related data
bearishOBbox (array) : an array declared using the UDT orderBlock that contains bearish order block related data
userTF (simple int)
Returns: void (0)
method lastBarRejections(id, rejectionColor, idShow, rejectionString, labelLevels, borderTransp, liteMode, rightCoordinate, masterCoords)
draws rejectionBlocks on last bar
Namespace types: array
Parameters:
id (array) : the array, an array of rejection block data declared using the UDT rejection block
rejectionColor (color) : the desired color of the rejection box
idShow (int)
rejectionString (string) : the desired name of the rejection blocks
labelLevels (string) : an input.string() to determine if labels for the block should be inside the box, outside, or none.
borderTransp (int)
liteMode (bool) : an input.bool(). True = neon effect, false = no neon.
rightCoordinate (int) : atime for the right coordinate of the box
masterCoords (map) : a map that stores the price of key levels and assigns them a name, used to determine price ranges
Returns: void
method OBdraw(id, OBshow, BBshow, OBcol, BBcol, bullishString, bearishString, isBullish, labelLevels, borderTransp, liteMode, rightCoordinate, masterCoords)
draws orderblocks and breaker blocks for data stored in UDT array()
Namespace types: array
Parameters:
id (array) : the array, an array of order block data declared using the UDT orderblock
OBshow (int) : the number of order blocks to show
BBshow (int) : the number of breaker blocks to show
OBcol (color) : color of order blocks
BBcol (color) : color of breaker blocks
bullishString (string) : the title of bullish blocks, which is a regular bullish orderblock or a bearish orderblock that's converted to breakerblock
bearishString (string) : the title of bearish blocks, which is a regular bearish orderblock or a bullish orderblock that's converted to breakerblock
isBullish (bool) : whether the array contains bullish orderblocks or bearish orderblocks. If bullish orderblocks,
the array will naturally contain bearish BB, and if bearish OB, the array will naturally contain bullish BB
labelLevels (string) : an input.string() to determine if labels for the block should be inside the box, outside, or none.
borderTransp (int)
liteMode (bool) : an input.bool(). True = neon effect, false = no neon.
rightCoordinate (int) : atime for the right coordinate of the box
masterCoords (map) : a map that stores the price of key levels and assigns them a name, used to determine price ranges
Returns: void
FVG
UDT for FVG calcualtions
Fields:
H (series float) : high price of user-selected timeframe
L (series float) : low price of user-selected timeframe
direction (series string) : FVG direction => "Up" or "Down"
T (series int) : => time of bar on user-selected timeframe where FVG was created
fvgLabel (series label) : optional label for FVG
fvgLineTop (series line) : optional line for top of FVG
fvgLineBot (series line) : optional line for bottom of FVG
fvgBox (series box) : optional box for FVG
labelLine
quickly pair a line and label together as UDT
Fields:
lin (series line) : Line you wish to pair with label
lab (series label) : Label you wish to pair with line
orderBlock
UDT for order block calculations
Fields:
orderBlockData (array) : array containing order block x and y points
orderBlockBox (series box) : optional order block box
vioCount (series int) : = 0 violation count of the order block. 0 = Order Block, 1 = Breaker Block
traded (series bool)
status (series string) : = "OB" status == "OB" => Level is order block. status == "BB" => Level is breaker block.
orderBlockLab (series label) : options label for the order block / breaker block.
strongPoints
UDT for strong highs and strong lows
Fields:
price (series float) : price of the strong high or strong low
timeAtprice (series int) : time of the strong high or strong low
strongPointLabel (series label) : optional label for strong point
strongPointLine (series line) : optional line for strong point
overlayLine (series line) : optional lines for strong point to enhance visibility
overlayLine2 (series line) : optional lines for strong point to enhance visibility
displacement
UDT for dispacements
Fields:
highPrice (series float) : high price of displacement
lowPrice (series float) : low price of displacement
timeAtPrice (series int) : time of bar where displacement occurred
displacementBox (series box) : optional box to draw displacement
displacementLab (series label) : optional label for displacement
po3data
UDT for po3 calculations
Fields:
dHigh (series float) : higher timeframe high price
dLow (series float) : higher timeframe low price
dOpen (series float) : higher timeframe open price
dClose (series float) : higher timeframe close price
po3box (series box) : box to draw po3 candle body
po3line (array) : line array to draw po3 wicks
po3Labels (array) : label array to label price points of po3 candle
macros
UDT for session macros
Fields:
sessions (array) : Array of sessions, you can populate this array using the "quickTime" function located above "export macros".
prices (matrix) : Matrix of session data -> open, high, low, close, time
sessionTimes (array) : Array of session names. Pairs with array sessions.
sessionLines (matrix) : Optional array for sesion drawings.
OTEtimes
UDT for data storage and drawings associated with OTE strategy
Fields:
upTimes (array) : time of highest point before trade is taken
dnTimes (array) : time of lowest point before trade is taken
tpLineLong (series line) : line to mark tp level long
tpLabelLong (series label) : label to mark tp level long
slLineLong (series line) : line to mark sl level long
slLabelLong (series label) : label to mark sl level long
tpLineShort (series line) : line to mark tp level short
tpLabelShort (series label) : label to mark tp level short
slLineShort (series line) : line to mark sl level short
slLabelShort (series label) : label to mark sl level short
sweeps
UDT for data storage and drawings associated with liquidity sweeps
Fields:
upSweeps (matrix) : matrix containing liquidity sweep price points and time points for up sweeps
dnSweeps (matrix) : matrix containing liquidity sweep price points and time points for down sweeps
upSweepDrawings (array) : optional up sweep box array. Pair the size of this array with the rows or columns,
dnSweepDrawings (array) : optional up sweep box array. Pair the size of this array with the rows or columns,
raidExitDrawings
UDT for drawings associated with the Liquidity Raid Strategy
Fields:
tpLine (series line) : tp line for the liquidity raid entry
tpLabel (series label) : tp label for the liquidity raid entry
slLine (series line) : sl line for the liquidity raid entry
slLabel (series label) : sl label for the liquidity raid entry
m2022
UDT for data storage and drawings associated with the Model 2022 Strategy
Fields:
mTime (series int) : time of the FVG where entry limit order is placed
mIndex (series int) : array index of FVG where entry limit order is placed. This requires an array of FVG data, which is defined above.
mEntryDistance (series float) : the distance of the FVG to the 50% range. M2022 looks for the fvg closest to 50% mark of range.
mEntry (series float) : the entry price for the most eligible fvg
fvgHigh (series float) : the high point of the eligible fvg
fvgLow (series float) : the low point of the eligible fvg
longFVGentryBox (series box) : long FVG box, used to draw the eligible FVG
shortFVGentryBox (series box) : short FVG box, used to draw the eligible FVG
line50P (series line) : line used to mark 50% of the range
line100P (series line) : line used to mark 100% (top) of the range
line0P (series line) : line used to mark 0% (bottom) of the range
label50P (series label) : label used to mark 50% of the range
label100P (series label) : label used to mark 100% (top) of the range
label0P (series label) : label used to mark 0% (bottom) of the range
sweepData (array)
silverBullet
UDT for data storage and drawings associated with the Silver Bullet Strategy
Fields:
session (series bool)
sessionStr (series string) : name of the session for silver bullet
sessionBias (series string)
sessionHigh (series float) : = high high of session // use math.max(silverBullet.sessionHigh, high)
sessionLow (series float) : = low low of session // use math.min(silverBullet.sessionLow, low)
sessionFVG (series float) : if applicable, the FVG created during the session
sessionFVGdraw (series box) : if applicable, draw the FVG created during the session
traded (series bool)
tp (series float) : tp of trade entered at the session FVG
sl (series float) : sl of trade entered at the session FVG
sessionDraw (series box) : optional draw session with box
sessionDrawLabel (series label) : optional label session with label
silverBulletDrawings
UDT for trade exit drawings associated with the Silver Bullet Strategy
Fields:
tpLine (series line) : tp line drawing for strategy
tpLabel (series label) : tp label drawing for strategy
slLine (series line) : sl line drawing for strategy
slLabel (series label) : sl label drawing for strategy
unicornModel
UDT for data storage and drawings associated with the Unicorn Model Strategy
Fields:
hPoint (chart.point)
hPoint2 (chart.point)
hPoint3 (chart.point)
breakerBlock (series box) : used to draw the breaker block required for the Unicorn Model
FVG (series box) : used to draw the FVG required for the Unicorn model
topBlock (series float) : price of top of breaker block, can be used to detail trade entry
botBlock (series float) : price of bottom of breaker block, can be used to detail trade entry
startBlock (series int) : start time of the breaker block, used to set the "left = " param for the box
includes (array) : used to store the time of the breaker block, or FVG, or the chart point sequence that setup the Unicorn Model.
entry (series float) : // eligible entry price, for longs"math.max(topBlock, FVG.get_top())",
tpLine (series line) : optional line to mark PT
tpLabel (series label) : optional label to mark PT
slLine (series line) : optional line to mark SL
slLabel (series label) : optional label to mark SL
rejectionBlocks
UDT for data storage and drawings associated with rejection blocks
Fields:
rejectionPoint (chart.point)
bodyPrice (series float) : candle body price closest to the rejection point, for "Up" rejections => math.max(open, close),
rejectionBox (series box) : optional box drawing of the rejection block
rejectionLabel (series label) : optional label for the rejection block
equalLevelsDraw
UDT for data storage and drawings associated with equal highs / equal lows
Fields:
connector (series line) : single line placed at the first high or low, y = avgerage of distinguished equal highs/lows
connectorLab (series label) : optional label to be placed at the highs or lows
levels (array) : array containing the equal highs or lows prices
times (array) : array containing the equal highs or lows individual times
startTime (series int) : the time of the first high or low that forms a sequence of equal highs or lows
radiate (array) : options label to "radiate" the label in connector lab. Can be used for anything
necessaryData
UDT for data storage of historical price points.
Fields:
highArr (array) : array containing historical high points
lowArr (array) : array containing historical low points
timeArr (array) : array containing historical time points
logArr (array) : array containing historical log returns
signArr (array) : array containing historical price directions
closeArr (array) : array containing historical close points
binaryTimeArr (array) : array containing historical time points, uses "push" instead of "unshift" to allow for binary search
binaryCloseArr (array) : array containing historical close points, uses "push" instead of "unshift" to allow the correct
binaryOpenArr (array) : array containing historical optn points, uses "push" instead of "unshift" to allow the correct
atrTFarr (array) : array containing historical user-selected TF atr points
openArr (array) : array containing historical open points
Pure Price Action Order & Breaker Blocks [LuxAlgo]The Pure Price Action Order & Breaker Blocks indicator is a pure price action adaptation of our previously published and highly popular Order-Blocks-Breaker-Blocks script.
Similar to its earlier version, this indicator detects order blocks that can automatically turn into breaker blocks on the chart once mitigated. However, the key difference/uniqueness is that the pure price action version relies solely on price patterns, eliminating the need for length definitions. In other words, it removes the limitation of user-defined inputs, ensuring a robust and objective analysis of market dynamics.
🔶 USAGE
An order block is a significant area on a price chart where there was a notable accumulation or distribution of orders, often identified by a strong price move followed by consolidation. Traders use order blocks to identify potential support or resistance levels.
A mitigated order block refers to an order block that has been invalidated due to subsequent market movements. It may no longer hold the same significance in the current market context. However, when the price mitigates an order block, a breaker block is confirmed. It is possible that the price might trade back to this breaker block, potentially offering a new trading opportunity.
Users can optionally enable the "Historical Polarity Changes" labels within the settings menu to see where breaker blocks might have previously provided effective trade setups.
This feature is most effective when using replay mode. Please note that these labels are subject to backpainting.
🔶 DETAILS
The swing points detection feature relies exclusively on price action, eliminating the need for numerical user-defined settings.
The first step involves detecting short-term swing points, where a short-term swing high (STH) is identified as a price peak surrounded by lower highs on both sides. Similarly, a short-term swing low is recognized as a price trough surrounded by higher lows on both sides.
Intermediate-term swing and long-term swing points are detected using the same approach but with a slight modification. Instead of directly analyzing price candles, we now utilize the previously detected short-term swing points. For intermediate-term swing points, we rely on short-term swing points, while for long-term swing points, we use the intermediate-term ones.
🔶 SETTINGS
Detection: Market structure used to detect swing points for creating order blocks.
Show Last Bullish OB: Number of the most recent bullish order/breaker blocks to display on the chart.
Show Last Bearish OB: Number of the most recent bearish order/breaker blocks to display on the chart.
Use Candle Body: Allows users to use candle bodies as order block areas instead of the full candle range.
🔹 Style
Show Historical Polarity Changes: Allows users to see labels indicating where a swing high/low previously occurred within a breaker block.
🔶 RELATED SCRIPTS
Pure-Price-Action-Structures.
Order-Blocks-Breaker-Blocks.
Predictive Trend and Structure (Expo)█ Overview
The Predictive Trend and Structure indicator is designed for traders seeking to identify future trend directions and interruptions in trend continuation. This indicator is unique because it employs standard deviation to predict upcoming trend directions and potential trend continuation levels. This enables traders to stay ahead of the market.
█ How It Works
This indicator primarily functions based on the calculated standard deviation of the trend over a specified period. It evaluates the trend direction by comparing the current trend value to its previous one and scales the standard deviation, allowing for adjustments in sensitivity to price fluctuations.
█ How to Use
Trend
You can easily identify when a future trend begins by observing where the trend level is displayed. If the price breaks above and remains above the trend, it indicates a bullish trend. Conversely, if the price breaks below and stays below, it signifies a bearish trend.
Support and Resistance
With the Predictive Structure enabled, the indicator aids in identifying potential support and resistance levels.
Trend Continuation Break
Trend continuation breaks occur when prices breaks support or resistance, indicating the existing trend may persist. The indicator plots these levels in advance, allowing traders to quickly identify where trend continuation might occur.
█ Settings
Period for Std Dev: Determines the number of periods used for the standard deviation calculation, impacting the indicator's sensitivity to price changes.
Standard Deviation Scaler: Scales the computed standard deviation, affecting the deviations needed to confirm trends and the indicator's focus on significant trend changes.
Predictive Structure: Enables or disables the prediction of market structures like potential levels of structure breaks/trend continuation breaks.
-----------------
Disclaimer
The information contained in my Scripts/Indicators/Ideas/Algos/Systems does not constitute financial advice or a solicitation to buy or sell any securities of any type. I will not accept liability for any loss or damage, including without limitation any loss of profit, which may arise directly or indirectly from the use of or reliance on such information.
All investments involve risk, and the past performance of a security, industry, sector, market, financial product, trading strategy, backtest, or individual's trading does not guarantee future results or returns. Investors are fully responsible for any investment decisions they make. Such decisions should be based solely on an evaluation of their financial circumstances, investment objectives, risk tolerance, and liquidity needs.
My Scripts/Indicators/Ideas/Algos/Systems are only for educational purposes!
Fibonacci Structure & Trend Channel (Expo)█ Overview
The Fibonacci Structure & Trend Channel (Expo) is designed to identify trend direction and potential reversal levels and offer insights into price structure based on Fibonacci ratios. The algorithm plots a Fibonacci channel, making it easier for traders to identify potential retracement points. Additionally, the Fibonacci market structure is plotted to enhance traders' understanding of the underlying order flow.
█ How to Use
Identify Trends
Use the plotted Fibonacci Trend Line to identify the direction of the market trend. A green line typically signifies a bullish trend, while a red line signifies a bearish trend.
Retracement Levels
The plotted Fibonacci levels can act as potential support or resistance levels. Look for price action signs at these levels for entry or exit points.
Channel Trading
If you enable the Fibonacci channel, the upper and lower bounds can act as overbought or oversold levels.
Market Structure
The plotted Fibonacci market structure serves as a valuable tool for dissecting the underlying order flow and gauging the strength or weakness of a trend. By analyzing these structures, traders can identify key levels where supply and demand intersect, which often act as pivotal points for trend reversals or accelerations. This visual representation simplifies complex market dynamics. Whether you're looking to catch a new trend early or seeking confirmation for a potential reversal, understanding the market structure plotted by the Fibonacci ratios can provide actionable insights for various trading strategies.
Use the Table
The information table can provide quick insights into the current trend and when it started.
█ Settings
The Fibonacci settings allow traders to specify the Fibonacci retracement levels that will be used to calculate the trend and its channel.
The Fibonacci Structure Trend Channel structure settings enable traders to fine-tune how the indicator identifies and plots the underlying price structure.
-----------------
Disclaimer
The information contained in my Scripts/Indicators/Ideas/Algos/Systems does not constitute financial advice or a solicitation to buy or sell any securities of any type. I will not accept liability for any loss or damage, including without limitation any loss of profit, which may arise directly or indirectly from the use of or reliance on such information.
All investments involve risk, and the past performance of a security, industry, sector, market, financial product, trading strategy, backtest, or individual's trading does not guarantee future results or returns. Investors are fully responsible for any investment decisions they make. Such decisions should be based solely on an evaluation of their financial circumstances, investment objectives, risk tolerance, and liquidity needs.
My Scripts/Indicators/Ideas/Algos/Systems are only for educational purposes!
Market Profile Dominance Analyzer# Market Profile Dominance Analyzer
## 📊 OVERVIEW
**Market Profile Dominance Analyzer** is an advanced multi-factor indicator that combines Market Profile methodology with composite dominance scoring to identify buyer and seller strength across higher timeframes. Unlike traditional volume profile indicators that only show volume distribution, or simple buyer/seller indicators that only compare candle colors, this script integrates six distinct analytical components into a unified dominance measurement system.
This indicator helps traders understand **WHO controls the market** by analyzing price position relative to Market Profile key levels (POC, Value Area) combined with volume distribution, momentum, and trend characteristics.
## 🎯 WHAT MAKES THIS ORIGINAL
### **Hybrid Analytical Approach**
This indicator uniquely combines two separate methodologies that are typically analyzed independently:
1. **Market Profile Analysis** - Calculates Point of Control (POC) and Value Area (VA) using volume distribution across price channels on higher timeframes
2. **Multi-Factor Dominance Scoring** - Weights six independent factors to produce a composite dominance index
### **Six-Factor Composite Analysis**
The dominance score integrates:
- Price position relative to POC (equilibrium assessment)
- Price position relative to Value Area boundaries (acceptance/rejection zones)
- Volume imbalance within Value Area (institutional bias detection)
- Price momentum (directional strength)
- Volume trend comparison (participation analysis)
- Normalized Value Area position (precise location within fair value zone)
### **Adaptive Higher Timeframe Integration**
The script features an intelligent auto-selection system that automatically chooses appropriate higher timeframes based on the current chart period, ensuring optimal Market Profile structure regardless of the trading timeframe being analyzed.
## 💡 HOW IT WORKS
### **Market Profile Construction**
The indicator builds a Market Profile structure on a higher timeframe by:
1. **Session Identification** - Detects new higher timeframe sessions using `request.security()` to ensure accurate period boundaries
2. **Data Accumulation** - Stores high, low, and volume data for all bars within the current higher timeframe session
3. **Channel Distribution** - Divides the session's price range into configurable channels (default: 20 rows)
4. **Volume Mapping** - Distributes each bar's volume proportionally across all price channels it touched
### **Key Level Calculation**
**Point of Control (POC)**
- Identifies the price channel with the highest accumulated volume
- Represents the price level where the most trading activity occurred
- Serves as a magnetic level where price often returns
**Value Area (VA)**
- Starts at POC and expands both upward and downward
- Includes channels until reaching the specified percentage of total volume (default: 70%)
- Expansion algorithm compares adjacent volumes and prioritizes the direction with higher activity
- Defines the "fair value" zone where most market participants agreed to trade
### **Dominance Score Formula**
```
Dominance Score = (price_vs_poc × 10) +
(price_vs_va × 5) +
(volume_imbalance × 0.5) +
(price_momentum × 100) +
(volume_trend × 5) +
(va_position × 15)
```
**Component Breakdown:**
- **price_vs_poc**: +1 if above POC, -1 if below (shows which side of equilibrium)
- **price_vs_va**: +2 if above VAH, -2 if below VAL, 0 if inside VA
- **volume_imbalance**: Percentage difference between upper and lower VA volumes
- **price_momentum**: 5-period SMA of price change (directional acceleration)
- **volume_trend**: Compares 5-period vs 20-period volume averages
- **va_position**: Normalized position within Value Area (-1 to +1)
The composite score is then smoothed using EMA with configurable sensitivity to reduce noise while maintaining responsiveness.
### **Market State Determination**
- **BUYERS Dominant**: Smooth dominance > +10 (bullish control)
- **SELLERS Dominant**: Smooth dominance < -10 (bearish control)
- **NEUTRAL**: Between -10 and +10 (balanced market)
## 📈 HOW TO USE THIS INDICATOR
### **Trend Identification**
- **Green background** indicates buyers are in control - look for long opportunities
- **Red background** indicates sellers are in control - look for short opportunities
- **Gray background** indicates neutral market - consider range-bound strategies
### **Signal Interpretation**
**Buy Signals** (green triangle) appear when:
- Dominance crosses above -10 from oversold conditions
- Previous state was not already bullish
- Suggests shift from seller to buyer control
**Sell Signals** (red triangle) appear when:
- Dominance crosses below +10 from overbought conditions
- Previous state was not already bearish
- Suggests shift from buyer to seller control
### **Value Area Context**
Monitor the information table (top-right) to understand market structure:
- **Price vs POC**: Shows if trading above/below equilibrium
- **Volume Imbalance**: Positive values favor buyers, negative favors sellers
- **Market State**: Current dominant force (BUYERS/SELLERS/NEUTRAL)
### **Multi-Timeframe Strategy**
The auto-timeframe feature analyzes higher timeframe structure:
- On 1-minute charts → analyzes 2-hour structure
- On 5-minute charts → analyzes Daily structure
- On 15-minute charts → analyzes Weekly structure
- On Daily charts → analyzes Yearly structure
This higher timeframe context helps avoid counter-trend trades against the dominant force.
### **Confluence Trading**
Strongest signals occur when multiple factors align:
1. Price above VAH + positive volume imbalance + buyers dominant = Strong bullish setup
2. Price below VAL + negative volume imbalance + sellers dominant = Strong bearish setup
3. Price at POC + neutral state = Potential breakout/breakdown pivot
## ⚙️ INPUT PARAMETERS
- **Higher Time Frame**: Select specific HTF or use 'Auto' for intelligent selection
- **Value Area %**: Percentage of volume contained in VA (default: 70%)
- **Show Buy/Sell Signals**: Toggle signal triangles visibility
- **Show Dominance Histogram**: Toggle histogram display
- **Signal Sensitivity**: EMA period for dominance smoothing (1-20, default: 5)
- **Number of Channels**: Market Profile resolution (10-50, default: 20)
- **Color Settings**: Customize buyer, seller, and neutral colors
## 🎨 VISUAL ELEMENTS
- **Histogram**: Shows smoothed dominance score (green = buyers, red = sellers)
- **Zero Line**: Neutral equilibrium reference
- **Overbought/Oversold Lines**: ±50 levels marking extreme dominance
- **Background Color**: Highlights current market state
- **Information Table**: Displays key metrics (state, dominance, POC relationship, volume imbalance, timeframe, bars in session, total volume)
- **Signal Shapes**: Triangle markers for buy/sell signals
## 🔔 ALERTS
The indicator includes three alert conditions:
1. **Buyers Dominate** - Fires on buy signal crossovers
2. **Sellers Dominate** - Fires on sell signal crossovers
3. **Dominance Shift** - Fires when dominance crosses zero line
## 📊 BEST PRACTICES
### **Timeframe Selection**
- **Scalping (1-5min)**: Focus on 2H-4H dominance shifts
- **Day Trading (15-60min)**: Monitor Daily and Weekly structure
- **Swing Trading (4H-Daily)**: Track Weekly and Monthly dominance
### **Confirmation Strategies**
1. **Trend Following**: Enter in direction of dominance above/below ±20
2. **Reversal Trading**: Fade extreme readings beyond ±50 when diverging with price
3. **Breakout Trading**: Look for dominance expansion beyond ±30 with increasing volume
### **Risk Management**
- Avoid trading during NEUTRAL states (dominance between -10 and +10)
- Use POC levels as logical stop-loss placement
- Consider VAH/VAL as profit targets for mean reversion
## ⚠️ LIMITATIONS & WARNINGS
**Data Requirements**
- Requires sufficient historical data on current chart (minimum 100 bars recommended)
- Lower timeframes may show fewer bars per HTF session initially
- More accurate results after several complete HTF sessions have formed
**Not a Standalone System**
- This indicator analyzes market structure and participant control
- Should be combined with price action, support/resistance, and risk management
- Does not guarantee profitable trades - past dominance does not predict future results
**Repainting Characteristics**
- Higher timeframe levels (POC, VAH, VAL) update as new bars form within the session
- Dominance score recalculates with each new bar
- Historical signals remain fixed, but current session data is developing
**Volume Limitations**
- Uses exchange-provided volume data which varies by instrument type
- Forex and some CFDs use tick volume (not actual transaction volume)
- Most accurate on instruments with reliable volume data (stocks, futures, crypto)
## 🔍 TECHNICAL NOTES
**Performance Optimization**
- Uses `max_bars_back=5000` for extended historical analysis
- Efficient array management prevents memory issues
- Automatic cleanup of session data on new period
**Calculation Method**
- Market Profile uses actual volume distribution, not TPO (Time Price Opportunity)
- Value Area expansion follows traditional Market Profile auction theory
- All calculations occur on the chart's current symbol and timeframe
## 📚 EDUCATIONAL VALUE
This indicator helps traders understand:
- How institutional traders use Market Profile to identify fair value
- The relationship between price, volume, and market acceptance
- Multi-factor analysis techniques for assessing market conditions
- The importance of higher timeframe structure in trade planning
## 🎓 RECOMMENDED READING
To better understand the concepts behind this indicator:
- "Mind Over Markets" by James Dalton (Market Profile foundations)
- "Markets in Profile" by James Dalton (Value Area analysis)
- Volume Profile analysis in institutional trading
## 💬 USAGE TERMS
This indicator is provided as an educational and analytical tool. It does not constitute financial advice, investment recommendations, or trading signals. Users are responsible for their own trading decisions and should conduct their own research and due diligence.
Trading involves substantial risk of loss. Past performance does not guarantee future results. Always use proper risk management and never risk more than you can afford to lose.
HTF Candles with PVSRA Volume Coloring (PCS Series)This indicator displays higher timeframe (HTF) candles using a PVSRA-inspired color model that blends price and volume strength, allowing traders to visualize higher-timeframe activity directly on lower-timeframe charts without switching screens.
OVERVIEW
This script visualizes higher-timeframe (HTF) candles directly on lower-timeframe charts using a custom PVSRA (Price, Volume & Support/Resistance Analysis) color model.
Unlike standard HTF indicators, it aggregates real-time OHLC and volume data bar-by-bar and dynamically draws synthetic HTF candles that update as the higher-timeframe bar evolves.
This allows traders to interpret momentum, trend continuation, and volume pressure from broader market structures without switching charts.
INTEGRATION LOGIC
This script merges higher-timeframe candle projection with PVSRA volume analysis to provide a single, multi-timeframe momentum view.
The HTF structure reveals directional context, while PVSRA coloring exposes the underlying strength of buying and selling pressure.
By combining both, traders can see when a higher-timeframe candle is building with strong or weak volume, enabling more informed intraday decisions than either tool could offer alone.
HOW IT WORKS
Aggregates price data : Groups lower-timeframe bars to calculate higher-timeframe Open, High, Low, Close, and total Volume.
Applies PVSRA logic : Compares each HTF candle’s volume to the average of the last 10 bars:
• >200% of average = strong activity
• >150% of average = moderate activity
• ≤150% = normal activity
Assigns colors :
• Green/Blue = bullish high-volume
• Red/Fuchsia = bearish high-volume
• White/Gray = neutral or low-volume moves
Draws dynamic outlines : Outlines update live while the current HTF candle is forming.
Supports symbol override : Calculations can use another instrument for correlation analysis.
This multi-timeframe aggregation avoids repainting issues in request.security() and ensures accurate real-time HTF representation.
FEATURES
Dual HTF Display : Visualize two higher timeframes simultaneously (e.g., 4H and 1D).
Dynamic PVSRA Coloring : Volume-weighted candle colors reveal bullish or bearish dominance.
Customizable Layout : Adjust candle width, spacing, offset, and color schemes.
Candle Outlines : Highlight the forming HTF candle to monitor developing structure.
Symbol Override : Display HTF candles from another instrument for cross-analysis.
SETTINGS
HTF 1 & HTF 2 : enable/disable, set timeframes, choose label colors, show/hide outlines.
Number of Candles : choose how many HTF candles to plot (1–10).
Offset Position : distance to the right of the current price where HTF candles begin.
Spacing & Width : adjust separation and scaling of candle groups.
Show Wicks/Borders : toggle wick and border visibility.
PVSRA Colors : enable or disable volume-based coloring.
Symbol Override : use a secondary ticker for HTF data if desired.
USAGE TIPS
Set the indicator’s visual order to “Bring to front.”
Always choose HTFs higher than your active chart timeframe.
Use PVSRA colors to identify strong momentum and potential reversals.
Adjust candle spacing and width for your chart layout.
Outlines are not shown on chart timeframes below 5 minutes.
TRADING STRATEGY
Strategy Overview : Combine HTF structure and PVSRA volume signals to
• Identify zones of high institutional activity and potential reversals.
• Wait for confirmation through consolidation or a pullback to key levels.
• Trade in alignment with dominant higher-timeframe structure rather than chasing volatility.
Setup :
• Chart timeframe: lower (5m, 15m, 1H)
• HTF 1: 4H or 1D
• HTF 2: 1D or 1W
• PVSRA Colors: enabled
• Outlines: enabled
Entry Concept :
High-volume candles (green or red) often indicate market-maker activity , such zones often reflect liquidity absorption by larger players and are not necessarily ideal entry points.
Wait for the next consolidation or pullback toward a support or resistance level before acting.
Bullish scenario :
• After a high-volume or rejection candle near a low, price consolidates and forms a higher low.
• Enter long only when structure confirms strength above support.
Bearish scenario :
• After a high-volume or rejection candle near a top, price consolidates and forms a lower high.
• Enter short once resistance holds and momentum weakens.
Exit Guidelines :
• Exit when next HTF candle shifts in color or momentum fades.
• Exit if price structure breaks opposite to your trade direction.
• Always use stop-loss and take-profit levels.
Additional Tips :
• Never enter directly on strong green/red high-volume candles, these are usually areas of institutional absorption.
• Wait for market structure confirmation and volume normalization.
• Combine with RSI, moving averages, or support/resistance for timing.
• Avoid trading when HTF candles are mixed or low-volume (unclear bias).
• Outlines hidden below 5m charts.
Risk Management :
• Use stop-loss and take-profit on all positions.
• Limit risk to 1–2% per trade.
• Adjust position size for volatility.
FINAL NOTES
This script helps traders synchronize lower-timeframe execution with higher-timeframe momentum and volume dynamics.
Test it on demo before live use, and adjust settings to fit your trading style.
DISCLAIMER
This script is for educational purposes only and does not constitute financial advice.
SUPPORT & UPDATES
Future improvements may include alert conditions and additional visualization modes. Feedback is welcome in the comments section.
CREDITS & LICENSE
Created by @seoco — open source for community learning.
Licensed under Mozilla Public License 2.0 .
Curved Radius Supertrend [BOSWaves]Curved Radius Supertrend — Adaptive Parabolic Trend Framework with Dynamic Acceleration Geometry
Overview
The Curved Radius Supertrend introduces an evolution of the classic Supertrend indicator - engineered with a dynamic curvature engine that replaces rigid ATR bands with parabolic, radius-based motion. Traditional Supertrend systems rely on static band displacement, reacting linearly to volatility and often lagging behind emerging price acceleration. The Curved Radius Supertend model redefines this by integrating controlled acceleration and curvature geometry, allowing the trend bands to adapt fluidly to both velocity and duration of price movement.
The result is a smoother, more organic trend flow that visually captures the momentum curve of price action - not just its direction. Instead of sharp pivots or whipsaws, traders experience a structurally curved trajectory that mirrors real market inertia. This makes it particularly effective for identifying sustained directional phases, detecting early trend rotations, and filtering out noise that plagues standard Supertrend methodologies.
Unlike conventional band-following systems, the Curved Radius framework is time-reactive and velocity-aware, providing a nuanced signal structure that blends geometric precision with volatility sensitivity.
Theoretical Foundation
The Curved Radius Supertrend draws from the intersection of mathematical curvature dynamics and adaptive volatility processing. Standard Supertrend algorithms extend from Average True Range (ATR) envelopes - a linear measure of volatility that moves proportionally with price deviation. However, markets do not expand or contract linearly. Trend velocity typically accelerates and decelerates in nonlinear arcs, forming natural parabolas across price phases.
By embedding a radius-based acceleration function, the indicator models this natural behavior. The core variable, radiusStrength, controls how aggressively curvature accelerates over time. Instead of simply following price distance, the band now evolves according to temporal acceleration - each bar contributes incremental velocity, bending the trend line into a radius-like curve.
This structural design allows the indicator to anticipate rather than just respond to price action, capturing momentum transitions as curved accelerations rather than binary flips. In practice, this eliminates the stutter effect typical of standard Supertrends and replaces it with fluid directional motion that better reflects actual trend geometry.
How It Works
The Curved Radius Supertrend is constructed through a multi-stage process designed to balance price responsiveness with geometric stability:
1. Baseline Supertrend Core
The framework begins with a standard ATR-derived upper and lower band calculation. These define the volatility envelope that constrains potential price zones. Directional bias is determined through crossover logic - prices above the lower band confirm an uptrend, while prices below the upper band confirm a downtrend.
2. Curvature Acceleration Engine
Once a trend direction is established, a curvature engine is activated. This system uses radiusStrength as a coefficient to simulate acceleration per bar, incrementally increasing velocity over time. The result is a parabolic displacement from the anchor price (the price level at trend change), creating a curved motion path that dynamically widens or tightens as the trend matures.
Mathematically, this acceleration behaves quadratically - each new bar compounds the previous velocity, forming an exponential rate of displacement that resembles curved inertia.
3. Adaptive Smoothing Layer
After the radius curve is applied, a smoothing stage (defined by the smoothness parameter) uses a simple moving average to regulate curve noise. This ensures visual coherence without sacrificing responsiveness, producing flowing arcs rather than jagged band steps.
4. Directional Visualization and Outer Envelope
Directional state (bullish or bearish) dictates both the color gradient and band displacement. An outer envelope is plotted one ATR beyond the curved band, creating a layered trend visualization that shows the extent of volatility expansion.
5. Signal Events and Alerts
Each directional transition triggers a 'BUY' or 'SELL' signal, clearly labeling phase shifts in market structure. Alerts are built in for automation and backtesting.
Interpretation
The Curved Radius Supertrend reframes how traders visualize and confirm trends. Instead of simply plotting a trailing stop, it maps the dynamic curvature of trend development.
Uptrend Phases : The band curves upward with increasing acceleration, reflecting the market’s growing directional velocity. As curvature steepens, conviction strengthens.
Downtrend Phases : The band bends downward in a mirrored acceleration pattern, indicating sustained bearish momentum.
Trend Change Points : When the direction flips and a new anchor point forms, the curve resets - providing a clean, early visual confirmation of structural reversal.
Smoothing and Radius Interplay : A lower radius strength produces a tighter, more reactive curve ideal for scalping or short timeframes. Higher values generate broad, sweeping arcs optimized for swing or positional analysis.
Visually, this curvature system translates market inertia into shape - revealing how trends bend, accelerate, and ultimately exhaust.
Strategy Integration
The Curved Radius Supertrend is versatile enough to integrate seamlessly into multiple trading frameworks:
Trend Following : Use BUY/SELL flips to identify emerging directional bias. Strong curvature continuation confirms sustained momentum.
Momentum Entry Filtering : Combine with oscillators or volume tools to filter entries only when the curve slope accelerates (high momentum conditions).
Pullback and Re-entry Timing : The smooth curvature of the radius band allows traders to identify shallow retracements without premature exits. The band acts as a dynamic, self-adjusting support/resistance arc.
Volatility Compression and Expansion : Flattening curvature indicates volatility compression - a potential pre-breakout zone. Rapid re-steepening signals expansion and directional conviction.
Stop Placement Framework : The curved band can serve as a volatility-adjusted trailing stop. Because the curve reflects acceleration, it adapts naturally to market rhythm - widening during momentum surges and tightening during stagnation.
Technical Implementation Details
Curved Radius Engine : Parabolic acceleration algorithm that applies quadratic velocity based on bar count and radiusStrength.
Anchor Logic : Resets curvature at each trend change, establishing a new reference base for directional acceleration.
Smoothing Layer : SMA-based curve smoothing for noise reduction.
Outer Envelope : ATR-derived band offset visualizing volatility extension.
Directional Coloring : Candle and band coloration tied to current trend state.
Signal Engine : Built-in BUY/SELL markers and alert conditions for automation or script integration.
Optimal Application Parameters
Timeframe Guidance :
1-5 min (Scalping) : 0.08–0.12 radius strength, minimal smoothing for rapid responsiveness.
15 min : 0.12–0.15 radius strength for intraday trends.
1H : 0.15–0.18 radius strength for structured short-term swing setups.
4H : 0.18–0.22 radius strength for macro-trend shaping.
Daily : 0.20–0.25 radius strength for broad directional curves.
Weekly : 0.25–0.30 radius strength for smooth macro-level cycles.
The suggested radius strength ranges provide general structural guidance. Optimal values may vary across assets and volatility regimes, and should be refined through empirical testing to account for instrument-specific behavior and prevailing market conditions.
Asset Guidance :
Cryptocurrency : Higher radius and multiplier values to stabilize high-volatility environments.
Forex : Midrange settings (0.12-0.18) for clean curvature transitions.
Equities : Balanced curvature for trending sectors or momentum rotation setups.
Indices/Futures : Moderate radius values (0.15-0.22) to capture cyclical macro swings.
Performance Characteristics
High Effectiveness :
Trending environments with directional expansion.
Markets exhibiting clean momentum arcs and low structural noise.
Reduced Effectiveness :
Range-bound or low-volatility conditions with repeated false flips.
Ultra-short-term timeframes (<1m) where curvature acceleration overshoots.
Integration Guidelines
Confluence Framework : Combine with structure tools (order blocks, BOS, liquidity zones) for entry validation.
Risk Management : Trail stops along the curved band rather than fixed points to align with adaptive market geometry.
Multi-Timeframe Confirmation : Use higher timeframe curvature as a trend filter and lower timeframe curvature for execution timing.
Curve Compression Awareness : Treat flattening arcs as potential exhaustion zones - ideal for scaling out or reducing exposure.
Disclaimer
The Curved Radius Supertrend is a geometric trend model designed for professional traders and analysts. It is not a predictive system or a guaranteed profit method. Its performance depends on correct parameter calibration and sound risk management. BOSWaves recommends using it as part of a comprehensive analytical framework, incorporating volume, liquidity, and structural context to validate directional signals.
Outside Candle Session Breakout [CHE]Outside Candle Session Breakout
Session - anchored HTF levels for clear market-structure and precise breakout context
Summary
This indicator is a relevant market-structure tool. It anchors the session to the first higher-timeframe bar, then activates only when the second bar forms an outside condition. Price frequently reacts around these anchors, which provides precise breakout context and a clear overview on both lower and higher timeframes. Robustness comes from close-based validation, an adaptive volatility and tick buffer, first-touch enforcement, optional retest, one-signal-per-session, cooldown, and an optional trend filter.
Pine version: v6. Overlay: true.
Motivation: Why this design?
Short-term breakout tools often trigger during noise, duplicate within the same session, or drift when volatility shifts. The core idea is to gate signals behind a meaningful structure event: a first-bar anchor and a subsequent outside bar on the session timeframe. This narrows attention to structurally important breaks while adaptive buffering and debouncing reduce false or mid-run triggers.
What’s different vs. standard approaches?
Baseline: Simple high-low breaks or fixed buffers without session context.
Architecture: Session-anchored first-bar high/low; outside-bar gate; close-based confirmation with an adaptive ATR and tick buffer; first-touch enforcement; optional retest window; one-signal-per-session and cooldown; optional EMA trend and slope filter; higher-timeframe aggregation with lookahead disabled; themeable visuals and a range fill between levels.
Practical effect: Cleaner timing at structurally relevant levels, fewer redundant or late triggers, and better multi-timeframe situational awareness.
How it works (technical)
The chart timeframe is mapped to an analysis timeframe and a session timeframe.
The first session bar defines the anchor high and low. The setup becomes active only after the next bar forms an outside range relative to that first bar.
While active, the script tracks these anchors and checks for a breakout beyond a buffered threshold, using closing prices or wicks by preference.
The buffer scales with volatility and is limited by a minimum tick floor. First-touch enforcement avoids mid-run confirmations.
Optional retest requires a pullback to the raw anchor followed by a new close beyond the buffered level within a user window.
Optional trend gating uses an EMA on the analysis timeframe, including an optional slope requirement and price-location check.
Higher-timeframe data is requested with lookahead disabled. Values can update during a forming higher-timeframe bar; waiting and confirmation mitigate timing shifts.
Parameter Guide
Enable Long / Enable Short — Direction toggles. Default: true / true. Reduces unwanted side.
Wait Candles — Minimum bars after outside confirmation before entries. Default: five. More waiting increases stability.
Close-based Breakout — Confirm on candle close beyond buffer. Default: true. For wick sensitivity, disable.
ATR Buffer — Enables adaptive volatility buffer. Default: true.
ATR Multiplier — Buffer scaling. Default: zero point two. Increase to reduce noise.
Ticks Buffer — Minimum buffer in ticks. Default: two. Protects in quiet markets.
Cooldown Bars — Blocks new signals after a trigger. Default: three.
One Signal per Session — Prevents duplicates within a session. Default: true.
Require Retest — Pullback to raw anchor before confirming. Default: false.
Retest Window — Bars allowed for retest completion. Default: five.
HTF Trend Filter — EMA-based gating. Default: false.
EMA Length — EMA period. Default: two hundred.
Slope — Require EMA slope direction. Default: true.
Price Above/Below EMA — Require price location relative to EMA. Default: true.
Show Levels / Highlight Session / Show Signals — Visual controls. Default: true.
Color Theme — “Blue-Green” (default), “Monochrome”, “Earth Tones”, “Classic”, “Dark”.
Time Period Box — Visibility, size, position, and colors for the info box. (Optional)
Reading & Interpretation
The two level lines represent the session’s first-bar high and low. The filled band illustrates the active session range.
“OUT” marks that the outside condition is confirmed and the setup is live.
“LONG” or “SHORT” appears only when the breakout clears buffer, debounce, and optional gates.
Background tint indicates sessions where the setup is valid.
Alerts fire on confirmed long or short breakout events.
Practical Workflows & Combinations
Trend-following: Keep close-based validation, ATR buffer near the default, one-signal-per-session enabled; add EMA trend and slope for directional bias.
Retest confirmation: Enable retest with a short window to prioritize cleaner continuation after a pullback.
Lower-timeframe scalping: Reduce waiting and cooldown slightly; keep a small tick buffer to filter micro-whips.
Swing and position context: Increase ATR multiplier and waiting; maintain once-per-session to limit duplicates.
Timeframe Tiers and Trader Profiles
The script adapts its internal mapping based on the chart timeframe:
Under fifteen minutes → Analysis: one minute; Session: sixty minutes. Useful for scalpers and high-frequency intraday reads.
Between fifteen and under sixty minutes → Analysis: fifteen minutes; Session: one day. Suits day traders who need intraday alignment to the daily session.
Between sixty minutes and under one day → Analysis: sixty minutes; Session: one week. Serves intraday-to-swing transitions and end-of-day planning.
Between one day and under one week → Analysis: two hundred forty minutes; Session: two weeks. Fits swing traders who monitor multi-day structure.
Between one week and under thirty days → Analysis: one day; Session: three months. Supports position traders seeking quarterly context.
Thirty days and above → Analysis: one day; Session: twelve months. Provides a broad annual anchor for macro context.
These tiers are designed to keep anchors meaningful across regimes while preserving responsiveness appropriate to the trader profile.
Behavior, Constraints & Performance
Signals can be validated on closed bars through close-based logic; enabling this reduces intrabar flicker.
Higher-timeframe values may evolve during a forming bar; waiting parameters and the outside-bar gate reduce, but do not remove, this effect.
Resource footprint is light; the script uses standard indicators and a single higher-timeframe request per stream.
Known limits: rare setups during very quiet periods, sensitivity to gaps, and reduced reliability on illiquid symbols.
Sensible Defaults & Quick Tuning
Start with close-based validation on, ATR buffer on with a multiplier near zero point two, tick buffer two, cooldown three, once-per-session on.
Too many flips: increase the ATR multiplier and cooldown; consider enabling the EMA filter and slope.
Too sluggish: reduce the ATR multiplier and waiting; disable retest.
Choppy conditions: keep close-based validation, increase tick buffer, shorten the retest window.
What this indicator is—and isn’t
This is a visualization and signal layer for session-anchored breakouts with stability gates. It is not a complete trading system, risk framework, or predictive engine. Combine it with structured analysis, position sizing, and disciplined risk controls.
Disclaimer
The content provided, including all code and materials, is strictly for educational and informational purposes only. It is not intended as, and should not be interpreted as, financial advice, a recommendation to buy or sell any financial instrument, or an offer of any financial product or service. All strategies, tools, and examples discussed are provided for illustrative purposes to demonstrate coding techniques and the functionality of Pine Script within a trading context.
Any results from strategies or tools provided are hypothetical, and past performance is not indicative of future results. Trading and investing involve high risk, including the potential loss of principal, and may not be suitable for all individuals. Before making any trading decisions, please consult with a qualified financial professional to understand the risks involved.
By using this script, you acknowledge and agree that any trading decisions are made solely at your discretion and risk.
Do not use this indicator on Heikin-Ashi, Renko, Kagi, Point-and-Figure, or Range charts, as these chart types can produce unrealistic results for signal markers and alerts.
Best regards and happy trading
Chervolino
Advanced Chandelier Exit with S/R [Alpha Extract]Advanced Chandelier Exit with S/R is a precision-crafted trailing stop and market structure detection system that fuses advanced Chandelier Exit logic with intelligent, multi-timeframe support and resistance tracking. This indicator delivers adaptive trend detection, volatility-aware exit positioning, and real-time structural mapping in a clean, responsive format. By combining directional filtering, pivot zone detection, and customizable styling, Advanced Chandelier Exit with S/R is designed to give traders reliable context, strong risk management, and visually intuitive confirmation signals across all timeframes and asset classes.
🔶 Adaptive Trailing Stop Architecture
At the core of Advanced Chandelier Exit with S/R is a refined Chandelier Exit mechanism that dynamically calculates trailing stops based on recent highs and lows, ATR volatility, and trend sensitivity. The system features directional memory, anchoring the stop to maintain position until a confirmed trend break occurs. This method prevents premature flips and keeps the trade aligned with sustained momentum.
longStop := close > longStop ? math.max(longStop, longStop ) : longStop
shortStop := close < shortStop ? math.min(shortStop, shortStop ) : shortStop
🔶 Volatility-Weighted Filtering
To reduce noise and improve reaction quality, Advanced Chandelier Exit with S/R includes an optional volatility normalization filter. This system adjusts ATR output based on how elevated it is relative to its own average, effectively down-weighting erratic price moves while maintaining responsiveness in directional phases.
volatilityFilter = enableVolatilityFilter ? ta.sma(baseATR, length) / baseATR : 1.0
atr = mult * baseATR * sensitivity * volatilityFilter
🔶 Trend Strength-Aware State Transitions
Trend flips in Advanced Chandelier Exit with S/R are not based solely on price crossing the stop level. Instead, the system includes a momentum-derived trend strength filter that validates the legitimacy of directional shifts. This guards against weak reversals and gives stronger confidence in breakout moves.
priceChange = math.abs(close - close )
avgPriceChange = ta.sma(priceChange, length)
trendStrength = math.min(priceChange / avgPriceChange * 100, 200)
🔶 Multi-Timeframe Support & Resistance Zones
Advanced Chandelier Exit with S/R embeds a sophisticated pivot-based structure mapping engine that automatically identifies significant price reaction levels and tracks their validity over time. It filters redundant zones, removes invalidated levels, and renders real-time support and resistance overlays based on market structure.
if isUniqueLevel(ph, resistanceLevels)
array.unshift(resistanceLevels, ph)
if isUniqueLevel(pl, supportLevels)
array.unshift(supportLevels, pl)
🔶 Dynamic Visual Encoding
The indicator uses strength-scaled fills, customizable colors, and line styling to convey directional bias with clarity. Color opacity intensifies as trend strength increases, offering intuitive context at a glance. Dynamic background fills mark trend states, while S/R zones are rendered with user-defined transparency for clean integration.
🔶 Signal Detection and Alerts
Directional signals are generated upon confirmed flips between long and short regimes, validated by stop crosses and strength filters. Additionally, the indicator provides S/R breakout alerts, identifying when price breaks through a key structural level.
🔶 Performance and Customization Optimizations
Advanced Chandelier Exit with S/R is built with modularity and efficiency in mind. It supports full customization of stop logic, volatility sensitivity, structural lookback, S/R zone filtering, and visual display. The use of array-based data structures for S/R levels ensures consistent performance even across high-activity assets and longer lookback periods.
Advanced Chandelier Exit with S/R represents the next evolution in trailing stop and structure-aware trading tools. By blending the proven logic of the Chandelier Exit system with intelligent trend strength filters and robust S/R detection, it becomes more than just a stop indicator—it becomes a complete trade management companion. Traders benefit from fewer false flips, clearer directional bias, and precise structural overlays that reinforce both breakout and reversal strategies. Whether used for swing entries, intraday positioning, or zone-based re-entries, Advanced Chandelier Exit with S/R empowers traders with responsive, intelligent logic that adapts to market conditions without compromise.
ADAM Projection - Efficiency Ratio Adaptive)Overview
The ADAM Projection is a visualization of how a price path might extend from its recent motion, expressed as a continuation (trend reflection) or anti-trend (mean reversion) pattern. This indicator expands upon Jim Sloman’s original ADAM projection—introduced in “The Adam Theory of Markets or What Matters Is Profit” (1983)—by adding a modern quantitative framework for Efficiency Ratio (ER) weighting, time-scaled path normalization, and smooth blending between continuation and anti-trend projections.
What Is the ADAM Theory?
Jim Sloman’s original ADAM projection was designed to model pure trend continuation. He proposed that every market motion could be mirrored around a central anchor price (the “Adam line”), effectively reflecting past price movements forward in time to visualize what a continuation of the same geometric path would look like. This reflection concept captured the idea that market structure exhibits self-similarity and that price trends often extend symmetrically beyond recent pivots.
How This Script Extends It
This version generalizes Sloman’s concept by introducing an adjustable blend between continuation (reflection) and anti-trend (forward paste) behavior, weighted by an adaptive ER domain.
Anchor Axis
The reflection axis (anchorPrice) can be Close, HL2, HLC3, or OHLC4.
The projection is drawn forward from this anchor for a user-defined horizon (len bars).
Dual Paths
Continuation (Reflection): Mirrors historical closes across the anchor.
Anti-trend (Forward Paste): Extends historical closes directly forward without inversion.
Efficiency Ratio (ER)
The Efficiency Ratio measures how directional recent price movement has been: ER = |Net Change| / Σ|Δi|
Values near +1 indicate strong directionality (favoring continuation); values near 0 indicate noise or consolidation (favoring anti-trend behavior).
Signed ER Normalization
ER values are mapped into a user-defined domain between erMin and erMax, with:
erSharp (γ) controlling the steepness of the blend curve
erFloor providing stability when ER ≈ 0
beta (β) weighting volatility across time (β = 0.5 approximates √time scaling)
Blended Projection
Each projected point is a weighted combination of the two paths: y_proj = (1 − w) * y_fade + w * y_cont
The blend factor w is derived from the normalized ER domain and gamma shaping, producing a smooth morph between the anti-trend and continuation geometries.
Visualization
The teal projection line shows the dynamically blended continuation/anti-trend forecast for the next len bars.
The gray anchor line marks the reflection axis.
Each segment adapts in real time based on ER magnitude and recent path structure.
Key Parameters
Core: len, anchorPrice, lineThin — projection horizon and appearance
Lines: showProj, colProj — show or recolor projection
ER Domain: erMin, erMax, erSharp, erFloor, beta — control domain scaling, shaping, and time weighting
Practical Use
High ER values emphasize continuation (trend-following behavior).
Low or negative ER values emphasize fading or mean reversion.
The projection helps visualize whether recent structure supports trend persistence or weakening.
Interpretation
The ADAM Projection is not a predictive indicator but a geometric tool for studying market symmetry and efficiency. It provides a structured way to visualize how recent movements would look if extended forward under both continuation and anti-trend assumptions. This blends Sloman’s original reflection concept with modern ER-based adaptivity.
Summary
Origin: Jim Sloman (1983) — trend continuation via reflection symmetry.
Extension: Adds ER-driven blending to model both continuation and anti-trend regimes.
Concept: Price reflection vs. direct forward extension.
Purpose: Study of geometric price symmetry and efficiency, not a trade signal.






















